1267 01揹包問題

2021-10-04 13:25:44 字數 643 閱讀 3626

乙個旅行者有乙個最多能裝 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 問 應該如何選擇裝入揹包的物品,使得裝入揹包中的物品的總價值最大?分析一波,面對每個物品,我們只有選擇拿取或者不拿兩種選擇,不能選擇裝入某物品的一部分,也不能裝入同一物品多次。解決辦法 宣告乙個 大...