0 1揹包問題的動態規劃演算法實現

2021-10-12 01:29:07 字數 924 閱讀 3588

#include

using

namespace std;

const

int n =6;

//物品的數量

const

int w =10;

//揹包最大容量

int m[n]

[w];

int v[n]=;

//物品價值, 0號位置為空

int w[n]=;

//物品重量, 0號位置為空, 不使用

int x[n]

;void

knapsack

(int v,

int w,

int c,

int n,

int m[n]

[w])

//前面沒討論物品1,對物品1單獨討論

m[1][c]

= m[2]

[c];

if(c >= w[1]

) m[1]

[c]=

max(m[1]

[c], m[2]

[c - w[1]

]+ v[1]

);}void

traceback

(int m[n]

[w],

int w,

int c,

int n,

int x)

//回溯

} x[n]

=(m[n]

[c])?1

:0;}

intmain()

cout << endl;

cout <<

"最優值為:"

<< endl;

cout << m[1]

[w]<< endl;

return0;

}

動態規劃演算法實現0 1揹包問題

package suanfa.dynamic 0 1揹包問題 使用動態規劃的演算法進行實現 author bxh public class knapsackproblem int value int target 10 二維陣列 記錄每個重量下的最大value值 int v new int valu...

01揹包問題 (動態規劃演算法)

0 1 揹包問題 給定 n 種物品和乙個容量為 c 的揹包,物品 i 的重量是 wi,其價值為 vi 問 應該如何選擇裝入揹包的物品,使得裝入揹包中的物品的總價值最大?分析一波 面對每個物品,我們只有選擇拿取或者不拿兩種選擇,不能選擇裝入某物品的一部分,也不能裝入同一物品多次。解決辦法 宣告乙個 大...

01揹包問題 (動態規劃演算法)

題目 給定n種物品和乙個容量為v的揹包,物品i的體積是wi,其價值為ci。每種物品只有乙個 問 如何選擇裝入揹包的物品,使得裝入揹包中的物品的總價值最大?面對每個物品,我們只有選擇放入或者不放入兩種選擇,每種物品只能放入一次。我們用之前同樣的思路來走一遍試試 假設只剩下最後一件物品,我們有兩種選擇 ...