動態規劃解決01揹包問題

2022-03-12 01:17:26 字數 621 閱讀 8856

/*本程式旨在利用動態規劃解決有價值的0-1揹包問題*/

/*物品的大小和價值以及揹包的大小儲存在乙個放置在e盤根目錄下的的csv檔案中*/

#include #include #include #include #include #include using namespace std;

int main()

//讀入資料的部分結束了

//行是物品件數(0-objectnum),列是揹包大小(0-packagesize)

int **table = new int *[objectnum + 1];

for (int i = 0; i < objectnum + 1; i++)

//初始化,第一行和第一列是0

for (int i = 0; i < objectnum + 1; i++)

for (int j = 0; j < packagesize + 1; j++)

//開始寫表

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

else

}while(j==0&&i>0)

cout

}

動態規劃解決01揹包問題

0 1揹包 動態規劃 問題描述 給定n種物品和一揹包。物品i的重量是wi,其價值是vi,揹包的容量為c。問應如何選擇裝入揹包的物品,使得裝入揹包中物品的總價值最大?問題分析 對於一種問題,要麼裝入揹包,要麼不裝。所以對於一種物品的裝入狀態可以取0和1。eg 物品個數n 5,物品重量w n 物品價值v...

動態規劃解決0 1揹包問題

把揹包問題抽象化 x1,x2,xn,其中 xi 取0或1,表示第 i 個物品選或不選 vi表示第 i個物品的價值,wi表示第 i 個物品的體積 重量 建立模型,即求max v1x1 v2x2 vnxn 約束條件,w1x1 w2x2 wnxn定義v i,j 當前揹包容量 j,前 i 個物品最佳組合對應...

動態規劃揹包問題 01揹包

問題描述 n種物品,每種乙個。第i種物品的體積為vi,重量為wi。選一些物品裝到容量為c的揹包,使得揹包內物品不超過c的前提下,重量最大。問題分析 宣告乙個f n c 的陣列。f i j 表示把前i件物品都裝到容量為j的揹包所獲得的最大重量。當 j v i 時,揹包容量不足以放下第 i 件物品,f ...