完全背包问题、、、

刚学习过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个物品、


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值