编程求解:为啥依赖背包进行01背包之后,就可以用分组背包来解决了?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程求解:为啥依赖背包进行01背包之后,就可以用分组背包来解决了?相关的知识,希望对你有一定的参考价值。

在背包九讲中的有依赖的背包,它说把每一个“主件”的“附件集合”进行一次01背包便可以用分组背包来解决这个问题了。

我搞不明白,进行一次01背包是对的,但是为什么说接下来要用分组背包?分组背包不是说一个组最多只可以选1个物品吗?但是这里他有很多个物品,真的搞不太清楚,求大神来解决一下。。

参考技术A 背包问题(Knapsack problem)是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。相似问题经常出现在商业、组合数学,计算复杂性理论、密码学和应用数学等领域中。也可以将背包问题描述为决定性问题,即在总重量不超过W的前提下,总价值是否能达到V?它是在1978年由Merkel和Hellman提出的。

以上是关于编程求解:为啥依赖背包进行01背包之后,就可以用分组背包来解决了?的主要内容,如果未能解决你的问题,请参考以下文章

用回溯法做0-1背包问题,这两行(程序中标注)是干嘛?为啥又要减?

求背包问题详解

01背包问题

Consumer (有依赖的背包)

背包问题的求解

0-1背包问题如下,画用回溯法求解时的搜索情况,急用啊