qaq
狀壓dp
1表示小鳥打掉了,0表示沒打掉。
dp[s]表示到s狀態最少需要幾步。
怎麼列舉a,b。
因為c=0,只需兩隻豬即可確定一條曲線。
boom[i][j]表示i豬和j豬確定的曲線可以打掉的豬。
關於轉移
列舉狀態s中第一只沒有打掉的小豬,固定i,列舉j即可
注意初始化
#include
#include
#include
#define ll long long
using
namespace
std;
const
int maxm=(1
<<19)+100;
const
double limit=1e-7;
int boom[20][20];
double x[20],y[20];
int dp[maxm];
void init()
double
fabs(double a)
void work()
//boom[i][j]=~boom[i][j];
//boom[j][i]=boom[i][j];}}
dp[0]=0;
for(int i=0;i<=(1
<1;i++)
printf("%d\n",dp[(1
<1]);
}int main()
憤怒的小鳥
對於每兩隻豬,只要他們的橫座標不一樣,就會有一條經過原點的二次函式y ax2 bx同時經過這兩隻豬,那麼這時就是解二元一次方程的時候了,設第一只豬的座標為 x1,y1 第二隻豬的座標為 x2,y2 y1 ax1 2 bx 1 y2 ax2 2 bx 2 化為 b y 1 ax 12x1 y2 ax2...
憤怒的小鳥
憤怒的小鳥 這道題目不是一道sb的狀壓嗎。我們設f i f i f i 表示射擊狀態是i ii,最少用了多少直線。i ii的第j jj位為1 11表示射擊這個位置。然後對於每個直線跑揹包。時間複雜度 o t n22n o tn 22 n o tn22 n 但是其實有更快做法,限制i ii只能被包含最...
憤怒的小鳥
include include include include pragma comment lib,winmm.lib 函式外部全域性變數定義 int high,width 遊戲的邊界 int bird x,bird y 小鳥的位置 int bar y,bar xdown,bar xtop 障礙物...