NOIp2016提高組 憤怒的小鳥

2022-05-20 18:31:43 字數 954 閱讀 3894

題目大意:

平面直角座標系的第一象限有n(n<=18)個點,你可以每次給出乙個形如y=ax^2+bx的函式把經過這條函式的點消掉,問消掉所有的點至少要多少函式?

思路:列舉每兩個點對,可以唯一確定一條函式,再列舉第三個點,判斷一下是否會經過這條函式。

狀態壓縮一下記錄每條函式能消掉那些點。

然後就是乙個簡單的狀壓dp。

一開始由於把fabs打成了abs,樣例都過不去,調了半個下午。

洛谷上隨便a,uoj上被extra資料hack掉了,把eps從1e-7改成1e-10就a了。

1 #include2 #include3 #include4 #include5 inline int

getint()

12const

int n=18;13

const

double eps=1e-10;14

struct

point ;

17point p[n];

18int sit[n*n],s;

19int f[1

<20 inline double pow(const

double &x)

23int

main()

29for(register int i=0;i)

32 s=n;

33for(register int i=0;i)

43 s++;44}

45}46for(register int i=1;i<(1

<)

49for(register int i=0;i<(1

<) 53}

54 printf("

%d\n

",f[(1

<1

]);55}56

return0;

57 }

憤怒的小鳥(NOIP2016提高組Day2T3)

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

NOIP 2016 提高組 Day2 憤怒的小鳥

原理我懂了 注意到資料範圍 n 18 有什麼演算法?暴力?狀壓!狀壓dp,對於每只豬1和0表示是否被打掉了 設f s 為當前狀態的最小步數 我們知道,三個點可以確定乙個拋物線 已知乙個點是原點,那麼再來兩個點就可以確定乙個拋物線,設點i和點j確定的拋物線表示為 i,j 每次列舉乙個狀態s,再列舉兩隻...

NOIP2016提高組day2 憤怒的小鳥

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