一个算法一个例题教会你算法---0-1背包问题

2023-12-13 18:52:23

动态规划

0-1背包问题

0-1背包问题就是求在有重量限制的情况下如何装入价值最大的物品。

啥也别说,直接看题:在这里插入图片描述

在这里插入图片描述
现在有四个可以放的物品,w代表重量,v代表价值。

step1:
我们列一个背包重量 j 从0到5的表格,纵轴 i代表每个物品的序号。

step2:
j=0时,背包载重为0不能放下任何物品,第一列我们直接先全部填0.

step3:
在j=0时,我们为了方便选择将第一列全部填0。

接下来,我们一行一行来填数值。

i=1,代表现在只有第一个物品可以装入书包。(w=2,v=3)

当j=1时,书包载重小于物品重量,因此i=1,j=1时总价值为0。

因此,我们填0.

step4:
接下来,j=2。可以装入第一个物品,因此现在总价值为3.

后继j=3,j=4,j=5,同理。因为,我们现在只考虑第一个物品入背包的情况,所以最大价值都为3.

step5:
再来看第二行,i=2。

此时,前两个物品我们都可以选择,然后再看背包重量的变化。

** step6:**
后继操作以此类推,我们就可以得到最终的最大价值为13

文章来源:https://blog.csdn.net/weixin_45803282/article/details/134973478
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。