cite:https://www.jianshu.com/p/d9a0624c05e7W是最大能装的重量,w[i]是第i件物品的重量, v[i]是价值
循环中k是装的数量,j是当前的重量,i是第i件物品
转移方程:dp[j] = max(kv[i] + dp[j - kw[i]], dp[j])
当k=1就是01背包
01背包
1 | for(int i=0; i<w.size(); ++i){ |
完全背包
1 | for(int i=0; i<w.size(); ++i){ |
多重背包
1 | for(int i=0; i<w.size(); ++i){ |