摘要:
当尝试用和完全背包问题相似的思路试图来优化的时候,就会发现优化不了 用二进制优化 假设我们这件物品一共有1023个 我们真的需要从0到1到2一直枚举到1023吗 有没有一种更高效的方式来枚举呢 可以的 我们把若干个第i件物品打包在一起 打包成2的整次幂的形式 比如说10组 1, 2, 4, 8, . 阅读全文
posted @ 2020-07-02 15:07
kyk333
阅读(177)
评论(0)
推荐(0)
摘要:
多重背包问题是每个物品最多有s[i]个 多重背包问题有朴素版和优化版 dp[i][j]只从前i个物品中选,体积<=j的最大值 根据第i个物品选多少个来划分 三重循环的暴力做法 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int 阅读全文
posted @ 2020-07-02 14:13
kyk333
阅读(227)
评论(0)
推荐(0)
摘要:
完全背包问题是每件物品有无限个 完全背包问题的状态表示和01背包问题一样 dp[i][j]表示只看前i个物品,总体积<= j的最大价值 状态计算: 按照第i个物品选了多少个来分 然后综合起来就是 k是枚举的第i个物品的个数,k = 0, 1, 2,... 三层循环的二维做法 1 #include < 阅读全文
posted @ 2020-07-02 12:11
kyk333
阅读(183)
评论(0)
推荐(0)
摘要:
01背包问题是每件物品要么用0次,要么用1次,最多只用一次 dp[i][j]表示只从前i个物品中选,总体积<=j的选法的最大价值。 二维做法 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 1010; 4 int d 阅读全文
posted @ 2020-07-02 09:34
kyk333
阅读(158)
评论(0)
推荐(0)

浙公网安备 33010602011771号