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