背包
01背包:
一维数组dp方程
for(int j = n; j >= w[i];j--){
dp[j] = dp[j - w[i] ] +v[i];
}
多重背包:
1:将一个有x份物品的拆成x一份的物品,循环数倍扩大,时间复杂度受不了
2:二进制优化:原理:将一个数x用二进制表示后,每一位的0或1可表示1-x的所有数
int num = 0;
for (int i = 1; i <= m; i++) {
int a, b, c;
scanf("%d%d%d", &a
原创
2021-02-02 22:49:40 ·
71 阅读 ·
0 评论