洛谷 P2831 憤怒的小鳥 狀壓DP

2022-05-08 00:57:08 字數 896 閱讀 1008

一.浮點數判相等:

二.拋物線的判斷:

題目中的拋物線有兩個未知數,在正常情況下,每兩點便可確定一條拋物線,但以下情況除外:

1.兩點所在的直線經過原點

2.兩點橫座標相等

3.a < 0

注:本題可用隨機化。

#include

#include

#include

int para[650];

int tot;

#define inf 1000001

int min(int x,int y)

double mx(double x,double y)

double abs(double x)

int dp[1<<19];

double x[21],y[21];

#define eps 1e-9

bool be(double x,double y)

int wuxian[600],jzw=0;

void init()

double geta(double x1,double y1,double x2,double y2)

double getb(double x1,double y1,double x2,double y2)

double getk(double x1,double y1,double x2,double y2)

bool delta(double x1,double y1,double x2,double y2)

void build_dp(int n)}}

}}​void build_para(int n)

}int main()

printf("%d\n",dp[(1<<(n))-1]);}}

洛谷P2831 憤怒的小鳥 狀壓dp

題目鏈結 這題。我樣例沒過就a了?算了,就當是樣例卡精度吧。直接狀壓dp一下,f sta 表示乾掉 sta 這個集合裡面的鳥的最小運算元 轉移的時候判斷一下一次能乾掉多少鳥。include define ll long long using namespace std const int maxn ...

洛谷P2831 憤怒的小鳥 貪心?狀壓DP

題目 一開始想 n 3 貪心來著 先按 x 排個序,那麼第乙個不就一定要打了麼?在列舉後面某乙個,和它形成一條拋物線,選能順便打掉最多的那個 然後連樣例都過不了.include include include include include define eps 1e 9 using namespa...

P2831 憤怒的小鳥 狀壓dp

n nn個點,每次可以射掉在函式y a x2 b xy ax 2 bx y ax2 bx上的點 a,b a,ba,b自定但是要求a 0a 0 a 0 求最少射擊次數。考慮狀壓,我們發現如果一次射掉兩個或以上的點那麼一定是一條固定的線 如果a 0 a geq 0 a 0的話就沒有了 計算cov eri...