多重背包的二进制优化

在多重背包问题中物品的数量被限制,没办法法像完全背包或者01背包那样简单的dp

但是通过二进制优化仍可以将多重背包问题转化为01背包问题

我们可以将每一个物品的数量按二进制的办法分成很多份

比如一个物品的数量是9

那么就可以将1,2,4,2将物体分成四份

同时该物体的价值和质量都变成1,2,4,2这么多倍

那么无论我们想要选择多少个这个物体,我们都可以由它所分成的份来表示,比如我们要六份,那么就可以选择2+4=6

这样多重背包问题就简化为了01背包问题。

posted @ 2021-05-18 21:30  redintonc  阅读(161)  评论(0)    收藏  举报