完全揹包問題 最好理解

2021-10-08 00:09:20 字數 1251 閱讀 6495

相關題解

【題目描述】

設有n種物品,每種物品有乙個重量及乙個價值。但每種物品的數量是無限的,同時有乙個揹包,最大載重量為m,今從n種物品中選取若干件(同一種物品可以多次選取),使其重量的和小於等於m,而價值的和為最大。

【輸入】

第一行:兩個整數,m

(揹包容量,m≤200)和n(物品數量,n≤30);

第2…n+1行:每行二個整數wi,ci,表示每個物品的重量和價值。

【輸出】

僅一行,乙個數,表示最大總價值。

【輸入樣例】

10 4

2 13 3

4 57 9

【輸出樣例】

max=12

#include

using

namespace std;

const

int maxn =

1000

;int n;

int w[maxn]

;int v[maxn]

;int w;

int dp[maxn +1]

[maxn +1]

;int

main()

for(

int i =

0; i < n; i++)}

} cout <<

"max="

<< dp[n]

[w]<< endl;

}

#include

#include

using

namespace std;

const

int maxn =

1010

;int n;

int w[maxn]

;int v[maxn]

;int w;

int dp[maxn]

;int

main()

for(

int i =

1; i <= n; i++

)for

(int j = w[i]

; j <= w; j++

) dp[j]

=max

(dp[j]

, dp[j - w[i]

]+ v[i]);

cout <<

"max: "

<< dp[w]

<< endl;

return0;

}

智算——紀念品

揹包問題(完全揹包)

1.矩陣鏈乘法 2.投資組合問題 3.完全揹包問題 4.01揹包問題 5.最長公共子串行 乙個揹包,可以放入n種物品,物品j的重量和價值分別為,如果揹包的最大重量限制是b,怎麼樣選擇放入揹包的物品以使得揹包的總價值最大?組合優化問題,設表示裝入揹包的第j個物品的數量,解可以表示為。那麼目標函式和約束...

完全揹包問題

這個是從ppt上弄過來的。完全揹包問題 有n種物品和乙個容量為v的揹包,每種物品都有無限件可用。放入第i種物品的耗費的空間是ci,得到的價值是wi。求解 將哪些物品裝入揹包,可使這些物品的耗費的空間總和不超過揹包容量,且價值總和最大 基本思路 這個問題非常類似於01揹包問題,所不同的是每種物品有無限...

完全揹包問題

設有n種物品,每種物品有乙個重量及乙個價值。但每種物品的數量是無限的,同時有乙個揹包,最大載重量為m,今從n種物品中選取若干件 用乙個物品可以多次選取 使其重量的和小於等於m,而價值的和為最大。輸入有多組資料,對於每組輸入資料第1行 兩個整數,m 揹包容量,m 200 和n 物品數量,n 30 第2...