有 n 件物品和乙個容量是 v的揹包。每件物品只能使用一次。
第 i件物品的體積是 vi,價值是 wi。
求解將哪些物品裝入揹包,可使這些物品的總體積不超過揹包容量,且總價值最大。
輸出最大價值。
輸入格式
第一行兩個整數,n,v,用空格隔開,分別表示物品數量和揹包容積。
接下來有 n行,每行兩個整數 vi,wi,用空格隔開,分別表示第 i
件物品的體積和價值。
輸出格式
輸出乙個整數,表示最大價值。
資料範圍
0ac**:
#include
#include
using
namespace std;
int n,v;
int w[
1010];
//價值
int v[
1010];
//體積
int f[
1010][
1010];
//從前i個物品中選出總重不超過j的最大價值
intmain()
}printf
("%d"
,f[n]
[v])
;return0;
}
C 0 1揹包問題
0 1揹包問題 0 1揹包問題基本思想 p i,j 表示在前面i個物品總價值為j時的價值最大值。str i,j 表示在前面i個物品總價值為j時的價值最大值時的物品重量串。i 0 或者j 0時 p i,j 0 str i,j 第i件物品的在重量小於j時能夠放入揹包 p i,j p i 1,j w i ...
C 01揹包問題
01揹包問題 有n個重量和價值分別為wi,vi的物品。從這些物品中挑選出總重量不超過w的物品,求所有挑選方案中價值總和的最大值 輸入格式 nw v w輸出格式 價值總和最大值 輸入 42 3 1 23 4 2 25 輸出 7解題思路 對每個物品有兩種選擇,選或者不選。選擇該物品的話,總價值會增加,剩...
C 01揹包問題
有n件物品和乙個容量為v 的揹包。放入第 i 件物品耗費的空間是 c i 得到的價值是 w i 求解將哪些物品裝入揹包可使價值總和最大。這是最基礎的揹包問題,特點是 每種物品僅有一件,可以選擇放或不放。用子問題定義狀態 即 f i,v 表示前i件物品恰放入乙個容量為v的揹包可以獲得的最大價值。則其狀...