- liujingtong1212 的博客
背包
- 2023-9-23 21:31:42 @
一 .0 1 背包
有N件物品和一个容量为W的背包每件物品只能使用一次。 第i件物品的体积是wi,价值是vi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。
二 .多重背包
多重背包我们其实可以看成为01背包和完全背包的组合。也可以把多重背包问题只转换成一个个01背包。
借助二进制思想优化朴素解法,在朴素解法中我们需要把,每一种背包i,按个数1~s,分为不同类,形成新体积的种类,这种做法虽然剪枝优化过(k*v<=j)复杂度仍然很高,问题的关键在于怎么分,我们可不可以,在分的时候换一种算法,不再是从1分到s,并且也可以表示出,1到s,产生同样的效果!
三 .完全背包
完全背包问题一般是指:有N件物品和一个能背重量为W的背包,第i件物品的重量为weight[i],价值为value[i]。每件物品有无限个(也就是可以放入背包多次),求怎样可以使背包物品价值总量最大。
完全背包与01背包问题的区别在于01背包物品只有一个,完全背包有无数个。
四 .混合背包
顾名思义,就是完全背包,多重背包和01背包混合在一起