cite:https://www.jianshu.com/p/d9a0624c05e7
W
是最大能装的重量,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){ |