憤怒的小鳥

2021-08-09 15:33:36 字數 793 閱讀 9726

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 障礙物...