对背包问题的总结:
首先说递推公式:
arr[i][j] = Math.max(arr[i - 1][j], arr[i - 1][j - w[i]] + v[i]);
w[i]为物品质量的数组,v[i]为物品价值的数组
arr[i][j]表示装i个物品(实际上这里的i,arr[i][j] 表示装i个物品,w[i],v[i]表示选择第i个物品),承重为j时背包的最大价值,
首先容易想到arr[i][0] == 0(即arr[1][0],arr[2][0]....) 因为j==0表示承重为0,自然装不下东西,所以总价值为0
然后arr[0][j] == 0.... 原因是虽然可以承重j 但是装了0个物品 故总价值为0。
感谢大佬博客--转载自:http://blog.youkuaiyun.com/mu399/article/details/7722810
另外这里有测试数据:https://zhidao.baidu.com/question/77646243
-----大佬博客写的很详细,不过其实搞懂里面那个图就好了
理解了思想其实也就不那么难。
一直看博客不是办法,以为自己会了其实并不会,多动手码一码,其实没有那么难。
-----献给想成为大佬的我们

本文解析了背包问题中的递推公式,并提供了详细的解释与示例。通过理解递推公式的含义及初始化条件,帮助读者掌握解决背包问题的方法。
4307

被折叠的 条评论
为什么被折叠?



