动态规划-01背包问题

  • 算法视频讲解

1.七月算法:
http://v.youku.com/v_show/id_XMTQwMDMxMDA5Ng==.html?spm=a2h0k.8191407.0.0&from=s1.8-1-1.2

2.推荐:
http://v.youku.com/v_show/id_XMTQ3MzI0NzI2OA==.html?spm=a2h0k.8191407.0.0&from=s1.8-1-1.2&f=28521433

  • Online 0/1 Knapsack problem solver

http://www.karaffeltut.com/NEWKaraffeltutCom/Knapsack/knapsack.html

题目要求

有N件物品和一个容积为M的背包.第i件物品的体积w[i],价值是d[i].求解将哪些物品装入背包可使价值总和最大.每种物品只有一件,可以选择放或者不放(N<=3500,M>=13000)

解决方法

用F[i][j]表示取前i中物品,使他们总体积不超过j的最优取法取得的价值总和.要求F[N][M]
边界:

if(w[1] <= j)    //拿第一种物品
     F[1][j] = d[1];
else             //第一种物品体积大于容积
     F[1][j] = 0;

用F[i][j]表示取前i中物品,使他们总体积不超过j的最优取法取得的价值总和
递推:

F[i][j] = max(F[i-1][j],F[i-1][j-w[i]]+d[i])

F[i][j] = max(F[i-1][j] , F[i-1][j-w[i]]+d[i])
如果不取第i种物品,就是在前i-1种取若干,使总体积不超过j,F[i-1][j]
如果取第i件物品,容积就变成了j-w[i],j-w[i] >= 0,再加上第i种物品的价值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背包问题(Knapsack problem) 是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品...
    NeoAndBob阅读 3,635评论 0 3
  • 一年级语文上册生字表 生字表一(共400字) 啊(ā)爱(ài)安(ān)岸(àn)爸(bà)八(bā)巴(bā)...
    meychang阅读 2,877评论 0 6
  • sì 支zhī茶chá 对duì 酒jiǔ,赋fù 对duì 诗shī,燕yàn子zi 对duì 莺yīng 儿é...
    每个人的孟母堂阅读 1,265评论 0 6
  • 树形动态规划,顾名思义就是树+DP,先分别回顾一下基本内容吧:动态规划:问题可以分解成若干相互联系的阶段,在每一个...
    Mr_chong阅读 1,509评论 0 2
  • 大家对于董卿当妈一事估计是知之甚少。而她也极少在公众面前提及自己的婚姻和小孩。 唯一的一次央视访谈还是在2012年...
    窗外阳光阅读 612评论 8 21