題目:
題意:給你一些點,求最少需要經過原點的拋物線經過所有點。
#include #includeview code#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//#include
//#include
//#include
//#define int long long
#define pb push_back
#define pii pair#define mpr make_pair
#define ms(a, b) memset((a), (b), sizeof(a))
#define x first
#define y secondtypedef
long
long
ll;const
int inf = 0x3f3f3f3f
;const ll inf = 0x3f3f3f3f3f3f3f3f
;const
int n = 18, m = 1
<< 18
;const
double eps = 1e-8
;using
namespace
std;
typedef pair
pdd;
intn, m;
pdd q[n];
//記錄點
int path[n][n]; //
倆個點構成一 條直線,存的是這條直線經過的點壓完後的二進位制數
int f[m]; //
dpint cmp(double x, double
y) signed main(
int argc, char
const *ar**)
path[i][j] =state;
//存下這個二進位制狀態,每一位是1代表這條線經過這個點
} }
memset(f,
0x3f, sizeof
(f));
f[0] = 0
;
//這裡跑的狀態,所以每一位0至少都會被列舉一遍
for (int i = 0; i < 1
<< n; i++)
}for (int j = 0; j
j++)
}cout
<< f[(1
<< n) - 1] <
}return0;
}
NOIP2016 憤怒的小鳥(狀壓DP)
輸入格式 第一行包含乙個正整數 t,表示遊戲的關卡總數。下面依次輸入這 t個關卡的資訊。每個關卡第一行包含兩個非負整數 n,m,分別表示該關卡中的小豬數量和 kiana 輸入的神秘指令型別。接下來的 n行中,第 ii 行包含兩個正實數 如果 m 0,表示kiana輸入了乙個沒有任何作用的指令。如果 ...
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...
Noip2016 憤怒的小鳥(狀壓DP)
題意大概就是座標系上第一象限上有n只豬,每次可以構造一條經過原點且開口向下的拋物線,拋物線可能會經過某一或某些豬,求使所有豬被至少經過一次的拋物線最少數量。原題中還有乙個特殊指令m,對於正解並沒有什麼卵用,第一行乙個數t,表示資料組數 對於每組資料,第一行2個整數n,m,接下來n行每行2個正實數想x...