传送门
类似背包的做法。
f[i][j]表示是否能放i个物品,价格为j
#include <cstdio> #include <iostream> #define N 8001 int n, sum; int a[201], f[201][N]; inline int read() int main() f[0][0] = 1; for(i = 1; i <= n; i++) for(j = n >> 1; j >= 1; j) for(k = sum >> 1; k >= a[i]; k) f[j][k] = f[j][k] | f[j 1][k a[i]]; for(i = j = sum >> 1; ; i, j++) if(f[n >> 1][j]) } return 0; }
上一篇:[luoguP1947] 笨笨当粉刷匠_NOI导刊2011提高(10)(DP)
下一篇:[luoguP3092] [USACO13NOV]没有找零No Change(状压DP + 二分)
DP









