NOIP2016 T6 憤怒的小鳥

2021-08-04 13:20:34 字數 748 閱讀 2176

仔細思考可以發現,這個題目應該是可以狀壓dp的。

(又是dp ,今年考了兩道dp,還都是新型別)

f[s]表示被覆蓋的狀態為s的最少豬數,然後預處理乙個g[i][j]表示選擇了i和j之後的拋物線經過的豬的狀態集合(是乙個01狀態),如g[3][5]=(21

)10=(

10101)2

表示經過第3、5只豬的拋物線可以打到第第1,3,5只豬。

容易得出:

f[s|g[i][j]]=min(f[s|g[i][j]],f[s]+1)

這是狀壓dp的經典做法。

時間複雜度o(

t∗n2

∗2n)

.

#include

#include

#include

#include

#include

#include

using

namespace

std;

const

int n=20;

const

int m=1

<<20;

const

double eps=1e-10;

int t,n,m;

int g[n][n],dp[m];

double x[n],y[n];

void calc(int i,int j)

}int main()

return

0;}

NOIP 2016 憤怒的小鳥

題目描述 kiana最近沉迷於一款神奇的遊戲無法自拔。簡單來說,這款遊戲是在乙個平面上進行的。有一架彈弓位於 0,0 處,每次kiana可以用它向第一象限發射乙隻紅色的小鳥,小鳥們的飛行軌跡均為形如y ax 2 bx的曲線,其中a,b是kiana指定的引數,且必須滿足a 0。當小鳥落回地面 即x軸 ...

NOIP2016 憤怒的小鳥

時間限制 1 sec 記憶體限制 128 mb kiana最近沉迷於一款神奇的遊戲無法自拔。簡單來說,這款遊戲是在乙個平面上進行的。有一架彈弓位於 0,0 處,每次kiana可以用它向第一象限發射乙隻紅色的小鳥,小鳥們的飛行軌跡均為形如y ax 2 bx的曲線,其中a,b是kiana指定的引數,且必...

NOIP2016 憤怒的小鳥

這道題看到資料範圍,我們就知道 小於等於18,一定使用狀態壓縮,即o 2 n 乙個東西 在算一下,我們發現,像noip這種考試,一定會考卡常數的題,所以瞬間得出這道題的演算法是o 2 n n 2 cases 顯然這道題我們可以當做直線來做 y a x 2 b x可以合併同類項得y x a x b 那...