传送门
f[i][j]表示节点i选j个用户的最大收益
#include <cstdio> #include <cstring> #include <iostream> #define N 3001 #define max(x, y) ((x) > (y) ? (x) : (y)) int n, m, cnt; int head[N], to[N], next[N], val[N], f[N][N], size[N]; //f[i][j]表示第i个节点选择j个用户的最优解 inline int read() inline void add(int x, int y, int z) inline void dfs(int u) } int main() } for(i = 1; i <= n; i++) for(j = 1; j <= n; j++) f[i][j] = 10000; for(i = n m + 1; i <= n; i++) f[i][1] = read(); dfs(1); for(i = m; i >= 0; i) if(f[1][i] >= 0) return 0; }
上一篇:[luoguP3694] 邦邦的大合唱站队/签到题(状压DP)
下一篇:[luoguP2618] 数字工程(DP)
DP









