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,用空格隔開,分...