背包
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 ·
72 阅读 ·
0 评论