动态规划—0-1背包问题(最易理解的讲解)
0 -1 背包问题是最广为人知的动态规划问题之一,拥有很多变形。尽管在理解之后并不难写出程序,但初学者往往需要较多的时间才能掌握它。小编写这篇文章力争做到用通俗易懂的语言,最少的公式把 0-1 背包问题讲解透彻。 喜欢的小朋友,请与我多多交流哦 ~~~~ 请允许我从一则故事说起………… 话说 Lucy 带着她的亲友团去沙漠寻求宝藏,经过几天几夜的长途跋涉,终于在沙漠的那一边发现了一堆个大无比、闪闪发光的钻石,一共有 n 个。可惜的是他们身上只有一个能装钻石的背包,背包的容量为 W 。 Lucy 兴奋之余,在一堆钻石中挑出突出的钻石编号排列: 0,1,2,3 ……, n-1 。第 i 个宝石对应的体积和价值分别为 w[i] 和 v[i] 。排好后 Lucy 开始思考,和向他的亲友团求助:背包总共只能装下体积为 W 的东西,那我要装下哪些钻石才能使我们获得最大的利益呢? “很简单,用动态规划呀,那样我们就能获得最大的利益了” Bill 斩钉截铁的回答,他边说着边用木棍在沙漠上笔画着。 PS : 以上故事情节纯属虚构,若有模仿者,小编概不负责哦!请读者细细听下文讲解。 说时迟那时快, Bill 将挑出的 5 个钻石编号钻石,假设背包的容量范围在 [0,17] ,问题示例 物品的价值和重量如下表 现在 Bill 考考读者 , 通过可放和不可放表,是不是就能罗列出在背包容量值固定