//0-1揹包動態演算法
//給出兩點地傑斯特拉演算法滿足動態規劃演算法的需求
// a 到 b c d e f h 已知學生家的距離,求老師家到每個學生家的最短路徑,好讓王老師做出計畫
// 寫出0-1揹包自頂向下的非遞迴動態規劃演算法
#include
#include
using
namespace std;
int n;
int*
input1()
return w;
}int
*input2()
intmin
(int a,
int b)
intmax
(int a,
int b)
//w[n] n件物品的重量;v[n] n個物品的權值 c是揹包容量
void
knap
(int
*v,int
*w,int c,
int n,
int*
*m) m[1]
[c]= m[2]
[c];
if(c >= w[1]
) m[1]
[c]=
max(m[2]
[c], m[2]
[c - w[1]
]+ v[1]
);}void
traceback
(int
**m,
int*w,
int c,
int n,
int*x)
} x[n]
=(m[n]
[c])?1
:0;}
intmain()
0 1揹包的遞迴與非遞迴實現
1 0 1揹包遞迴 2 include2 include 3 using namespace std 45 int w 物品重量陣列 6int v 物品價值陣列 7int contain 5 揹包容量 8int y 4 解向量,y i 1表示選取物品,y i 0表示不選取物品910 int f in...
揹包問題的非遞迴演算法
const int m 12 揹包重m斤 int subjects 物件陣列,重量 價值 int currentweight 0,currentvalue 0 當前重量,當前價值 int maxvalue 0 最優價值 for int i 0 i subjects.getupperbound 0 1...
01揹包 (遞迴解決)
01揹包,設定乙個揹包,他有乙個maxweight,現在你有n個物品,每個物品都有重量與其價值,現在要你求取得的最大價值。運用遞迴的思想,假如現在是從最後乙個開始選,如果這個東西的重量大於揹包的重量,那是不是可以從第n 1個物體開始選。假如這個東西的重量小於揹包的重量,那麼現在你將面臨兩個選擇,一不...