完全揹包問題(一維陣列優化)

2021-10-10 11:22:59 字數 450 閱讀 4154

【問題描述】

有n件物品和乙個容量是v的揹包。每件物品都有無限件可用。

第i件物品的體積是vi,價值是wi。

求解將哪些物品裝入揹包,可使這些物品的總體積不超過揹包容量,且總價值最大。

【輸入格式】

第一行兩個整數n、v,用空格隔開,分別表示物品數量和揹包容積。

接下來有n行,每行兩個整數vi,wi,用空格隔開,分別表示第i件物品的體積和價值。

【輸出格式】

輸出乙個整數,表示最大價值。

【資料範圍】

00【演算法**】

#include using namespace std;

int n,v;

int v[1005],w[1005],dp[1005];

int main()

for(int i=1; i<=n; i++)

} cout<【參考文獻】

完全揹包 一維陣列

題意 設有n 種物品,每種物品有乙個重量及乙個價值。但每種物品的數量是無限的,同時有乙個揹包,最大載重量為m,今從n 種物品中選取若干件 同一種物品可以多次選取 使其重量的和小於等於m,而價值的和為最大。分析 f j max f j f j w i p i 最大價值 f m varw,p array...

完全揹包問題 一維空間優化

有 n 種物品和乙個容量是 v 的揹包,每種物品都有無限件可用。第 i 種物品的體積是 vi,價值是 wi。求解將哪些物品裝入揹包,可使這些物品的總體積不超過揹包容量,且總價值最大。輸出最大價值。輸入格式 第一行兩個整數,n,v,用空格隔開,分別表示物品種數和揹包容積。接下來有 n 行,每行兩個整數...

完全揹包問題的優化

有 n 種物品和乙個容量為 v 的揹包,每種物品都有無限件可用。放入第 i 種物品的體積是 ci,價值是 wi。求將哪些物品裝入揹包,可使這些物品的耗費的費用總和不超過揹包容量,且重量總和最大。首先,要將 ci 大於 v 的物品剔除。其次,對於任意正整數 i 和 j,如果有 ci cj 且 wi w...