01背包与完全背包的枚举顺序的不同处

顾z

2018-09-13 07:11:24

Personal

# 01背包与完全背包的枚举顺序的不同处 ## 顺序枚举 此时我们手中有**一件**体积为2,价值为6的物品. 很明显我们可以得到一个填充了2体积,价值为6的背包.**(黑色代表体积,红色代表价值.**↓ ![](https://i.loli.net/2018/09/13/5b9991c53f266.png) (中间填充3的过程略过 emmm 此时当我们填充到体积为4的背包的时候,我们发现可以通过填充体积为2的背包得到更大价值. ![](https://i.loli.net/2018/09/13/5b9992430c695.png) 但是,**我们手中只有一件这样的物品**,再去填充不就违反了题目规定? 同理,当我们枚举到更大体积的时候,依旧不满足要求. 所以,**顺序枚举体积是完全背包做法**.(即物品有很多件. ## 倒叙枚举 其实根据上面应该不难理解,但是既然说到这里,我还是决定写一下. 同样,我们依旧有一个体积为2的物品。 此时倒叙,我们填充背包.(依旧是到4. 我们发现,我们还是可以通过填充体积为2的背包得到体积为4的背包. ![](https://i.loli.net/2018/09/13/5b999c5dea3ae.png) 不过这个时候,体积为2的背包中并没有物品. 因此,我们填充体积得到的4的背包,只是得到了体积为2的物品的价值. 再度枚举到体积为2的背包时,我们才填充得到体积为2的背包. 而接下来枚举到的物品中,不会再重复使用这一件物品. 即最终的图会是这样(其他部分略过. ![](https://i.loli.net/2018/09/13/5b999cb30fefd.png) 这样我们就能满足题目中的,每个物品只有一件的情况. 而这也是我们**01背包倒叙枚举体积**的原因.