完全揹包問題

2021-08-21 05:55:17 字數 641 閱讀 9981

完全揹包問題描述:有編號分別為a,b,c,d的四件物品,它們的重量分別是2,3,4,7,它們的價值分別是1,3,5,9,每件物品數量無限個,現在給你個承重為10的揹包,如何讓揹包裡裝入的物品具有最大的價值總和?

分析:物品數量無限個,則在取完一種物品後,還要看是否還能再取該物品,以及取了該物品後背包中總物品的價值和不取該物品後背包中總物品的價值,遞推公式為status[i][j]=max。

1.使用遞迴方式計算。

int rec_backpackcp(vectorarr, int value, int w, int i) 

else

} else if (w < arr[i])

else

}

2.使用陣列動態規劃。使用這種方法要先初始化2種情況時的相應陣列元素值。1.在揹包所能承載重量為0時。2.在只有一種物品時。

int norec_backpackcp(vectorarr, int value, int w) 

for (int i = 1;i < arr.size();i++)

} }return status[arr.size()-1][w];

}

我這裡使用的是二維陣列,還有人用一維陣列

揹包問題(完全揹包)

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...