01背包递归公式理解

2022-07-16  本文已影响0人  草莓2020

推荐学习:
https://www.programmercarl.com/%E8%83%8C%E5%8C%85%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%8001%E8%83%8C%E5%8C%85-1.html#_01-%E8%83%8C%E5%8C%85

dp[i][j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。

递推公式:
dp[i][j]的含义:从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。
那么可以有两个方向推出来dp[i][j]:

其中递推公式中dp[i - 1][j - weight[i]] + value[i]是比较疑惑的。

使用如下示例说明对递推公式的理解:
背包最大重量为6,问背包能背的物品最大价值是多少?

物品 重量 价值
物品0 1 15
物品1 3 20
物品2 4 30

以计算dp[2][6]为例,即计算从下标为[0-2]的物品里任意取,放进容量为6的背包,价值总和最大是多少。

上一篇下一篇

猜你喜欢

热点阅读