一.浮點數判相等:
二.拋物線的判斷:
題目中的拋物線有兩個未知數,在正常情況下,每兩點便可確定一條拋物線,但以下情況除外:
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...