乙個旅行者有乙個最多能裝 m 公斤的揹包,現在有 n 件物品,它們的重量分別是w1,w2,...,wn,它們的價值分別為c1,c2,...,cn,求旅行者能獲得最大總價值。第一行:兩個整數,m(揹包容量,m≤200)和n(物品數量,n≤30);
第2..n+1行:每行二個整數wi,ci,表示每個物品的重量和價值。
僅一行,乙個數,表示最大總價值。
10 4
2 13 3
4 57 9
12
#include#includeusing namespace std;
int main()
; cin>>m>>n;
for(int i=1;i<=n;i++)
cin>>w[i]>>c[i];
for(int i=1;i<=n;i++)
for(int j=m;j>=w[i];j--)
dp[j]=max(dp[j],dp[j-w[i]]+c[i]);
cout
}
一本通1267 01揹包問題(深度搜尋 動態規劃)
1267 01揹包問題 題目描述 乙個旅行者有乙個最多能裝 mm 公斤的揹包,現在有 nn 件物品,它們的重量分別是w1,w2,wnw1,w2,wn,它們的價值分別為c1,c2,cnc1,c2,cn,求旅行者能獲得最大總價值。輸入 第一行 兩個整數,mm 揹包容量,m 200m 200 和nn 物品...
揹包問題 01揹包問題
n個物品,總體積是v,每個物品的體積的vi,每個物品的最大價值是wi,在不超過v的體積下求最大價值 eg揹包容積為 5 物品數量為 4 物品的體積分別為 物品的價值分別為 思路定義乙個二位陣列int f new int n 1 v 1 f i j 就表示在1 i個物品中選取體積小於v的情況的最大價值...
01揹包問題 完全揹包問題 多重揹包問題
0 1 揹包問題 給定 n 種物品和乙個容量為 c 的揹包,物品 i 的重量是 wi,其價值為 vi 問 應該如何選擇裝入揹包的物品,使得裝入揹包中的物品的總價值最大?分析一波,面對每個物品,我們只有選擇拿取或者不拿兩種選擇,不能選擇裝入某物品的一部分,也不能裝入同一物品多次。解決辦法 宣告乙個 大...