揹包九講之五(二維費用的揹包問題)

2022-08-24 21:24:09 字數 740 閱讀 1165

1/*2

二維費用的揹包問題是指:對於每件物品,具有兩種不同的費用,

3選擇這件物品就必須付出這兩種代價,每種代價都有可付出的最大值(揹包容量)

4問怎麼選擇物品才能得到最大價值.費用增加了一維,那麼只需要狀態增加一維就可以了、

5dp[i][j][k] 前i件物品付出兩種代價為j和k的最大價值

6dp[i][j][k] = max(dp[i-1][j][k],dp[i-1][j-a[i]][k-b[i]]);

7根據揹包的思想,可將狀態壓縮為二維的.

8只不過是費用增加了一維,所以01揹包,完全揹包,多重完全揹包的思想完全

9可以用在這裡

10*/

11 #include 12 #include

13int t[111],v[111],g[111

];14

int dp[1111][111

];15

intt,v,n;

16 inline int max(const

int &a, const

int &b)

1720

void zeroonepack(int t,int v, int

g)21

27int

main()

2839

40return0;

41 }

但是更多的時候是隱式地給出條件,比如n個物品最多取m個,那麼第二維的費用便是個數。

動態規劃之揹包九講之五 二維費用揹包

題目 有 n 件物品和乙個容量是 v 的揹包,揹包能承受的最大重量是 m。每件物品只能用一次。體積是 vi,重量是 mi,價值是 wi。求解將哪些物品裝入揹包,可使物品總體積不超過揹包容量,總重量不超過揹包可承受的最大重量,且價值總和最大。輸出最大價值。輸入格式 第一行兩個整數,n,v,m,用空格隔...

二維費用揹包問題(揹包九講)

前言 對於一些揹包問題,重點還是在於如何找出 揹包容量 和 各種代價 以及價值,如此問題便迎刃而解了。下午 打籃球居然下冰雹了,悲催了。問題 二維費用的揹包問題是指 對於每件物品,具有兩種不同的費用 選擇這件物品必須同時付出這兩種代價 對於每種代價都有 乙個可付出的最大值 揹包容量 問怎樣選擇物品可...

揹包九講之二維費用的揹包問題

有 n 件物品和乙個容量是 v 的揹包,揹包能承受的最大重量是 m。每件物品只能用一次。體積是 vi,重量是 mi,價值是 wi。求解將哪些物品裝入揹包,可使物品總體積不超過揹包容量,總重量不超過揹包可承受的最大重量,且價值總和最大。輸出最大價值。輸入格式 第一行兩個整數,n,v,m,用空格隔開,分...