刚学习过01背包问题 接着就是这个了:完全背包、 区别是每种物品的数量是无穷多个的、
这样每种物品就不是放和不放两种状态了 而是放几个、
状态转移方程就变成了 f[i][v] = max( f[i-1][v-k*w[i]] + k*h[i] ) | k*w[i] <= v
时间复杂度很高 一点简单的优化:
1.将高费用低价值的物品舍弃
2.将费用高于背包体积的物品舍弃
很多优化 就不多说了 最优法如下:
for i=1..N
for v=0..V
f[v]=max{f[v],f[v-cost]+weight}
和01背包不同的是v的循环顺序变为正序、因为01背包在考虑f[i][v]时 是依照没有第i件物品放入的情况进行决策的而完全背包数量是无穷的 所以在考虑f[i][v]时 背包里可以已经存在第i个物品、