码迷,mamicode.com
首页 > 其他好文 > 详细

背包问题学习及归纳

时间:2018-07-23 23:33:25      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:决定   想法   span   基本   完全背包问题   max   未决   注意   逆序   

1.01背包问题

      顾名思义,及每种物品可以选择放或不放,于是就有了最朴素的转移式:f[i][j]=max{f[i-1][j],f[i-1][j-w[i]]+c[i]},然后考虑优化空间,可转换为f[j]=max(f[j],f[j-w[i]]+c[i])注意j要逆序的从m到1(保证从已决定推到未决定);

2.完全背包问题

    与01背包类似,但是关键的不同在于其j要顺序的从1到n,因为需要一个可能已选的子结果,然后同理可得f[j]=max(f[j],f[j-w[i]]+c[i]);

3.多重背包问题

   基本想法是f[i][v]=max(f[i][j],f[i-1][j-k*w[i]+k*c[i]),(0<=k<=n[i]&&k*w[i]<=j);转换为01背包问题即把每一个拆分为n[i]个,这样时间和空间的复杂度为O(V*sum(n[i]));然后考虑优化,

    

 

背包问题学习及归纳

标签:决定   想法   span   基本   完全背包问题   max   未决   注意   逆序   

原文地址:https://www.cnblogs.com/linzeli/p/9357409.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!