leetcode-master/problems/背包问题理论基础.md

1.3 KiB
Raw Blame History

背包问题

背包九讲其实看起来还是有点费劲的,而且都是伪代码理解起来吃力

完全背包

有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i]得到的价值是value[i] 。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。

完全背包和01背包问题唯一不同的地方就是每种物品有无限件。

终点讲解两个for顺序的问题完全背包就可以换顺序了因为不需要从后向前遍历了

程序为何成立的道理。

值得一提的是上面的伪代码中两层for循环的次序可以颠倒。这个结论有可能会带来算法时间常数上的优化。(可能说的就是组合或者排列了)

多重背包

有N种物品和一个容量为V 的背包。第i种物品最多有Mi件可用每件耗费 的空间是Ci 价值是Wi 。求解将哪些物品装入背包可使这些物品的耗费的空间 总和不超过背包容量,且价值总和最大。

这题目和完全背包问题很类似。基本的方程只需将完全背包问题的方程略 微一改即可。

总结

总结

后台回复:背包九讲 就可以获得pdf