xtu p1052 01揹包問題

2021-10-04 18:13:04 字數 839 閱讀 5128

描述

乙個旅行者有乙個最多能裝 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

輸出樣例

限制

時間限制: 1000 ms

記憶體限制: 65536 kb

剪枝一下才能過

#include

using

namespace std;

intconst maxn=30;

int n,v,maxval;

int w[maxn]

,c[maxn]

;void

dfs(

int index,

int sumw,

int sumc)

return;}

dfs(index+

1,sumw,sumc);if

(sumw+w[index]

<=v)

}int

main()

EOJ 動態規劃) 1052 0 1揹包問題

單測試點時限 2.0 秒 記憶體限制 256 mb 已知 n 個物體 1,2,3,n 與乙個揹包。物體 i 的重量為 wi 0,價值為 pi 0 i 1,2,n 揹包容量為 m 0。求在不超過揹包容量的情況下,使得裝進去的物體的價值最高。輸入第一行為乙個正整數 t,表示有幾組測試資料。每組測試資料的...

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