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

 

二维费用的背包问题:

 

指对于每件物品,具有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.多重背包时,拆分

 

posted on 2015-04-20 15:09  _fukua  阅读(222)  评论(0编辑  收藏  举报