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

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

时间:2015-04-20 16:32:53      阅读:126      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!