首页 > 其他 > 详细

基础DP中的二维费用的背包

时间:2015-04-20 16:32:28      阅读:141      评论:0      收藏:0      [点我收藏+]

 

二维费用的背包问题:

 

指对于每件物品,具有2种不用的费用,选择这件物品需要同时付出2种代价

 

对于每一种代价都有一个可付出的最大值(背包容量)

 

问怎么样选择物品可以得到最大的价值

 

 

设这2种代价分别为1,2

 

第i件物品所需的2种代价为a[i] , b[i] 

 

2种代价可付出的最大值为U,V

 

物品价值为w[i]

 

费用增加了一维,则状态也增加一维

 

设f[u][v]表示前i件物品付出代价为u,v时的最大价值

 

则f[u][v]=max(f[u][v],f[u-a[i]][v-b[i]]+w[i])

 

1.物品只取1次,u,v逆序

 

2.完全背包时,u,v顺序

 

3.多重背包时,拆分

 

基础DP中的二维费用的背包

原文:http://www.cnblogs.com/-maybe/p/4441640.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!