#0-1揹包
#include
#include
using
namespace std;
int m[
100]
[100];
intmax
(int a,
int b)
void
knapsack
(int w,
int v,
int n,
int c)
for(
int i=n-
1; i>
1; i--)}
m[1]
[c]=m[2]
[c];
if(w[0]
<=c)
}void
traceback
(int w,
int n,
int c,
int x)
}if(m[n]
[c]!=0)
x[n]=1
;else
x[n]=0
;}intmain()
;int v[5]
=;int c=10;
knapsack
(w,v,n,c)
;int i,j;
for(i=
1; i<=n; i++
) cout
(w,n,c,x)
;for
(int k=
1; k<=n; k++
) cout<<<
" ";
return0;
}
#include
#include
using
namespace std;
int m[
100]
[100];
intmax
(int a,
int b)
void
knapsack
(int w,
int v,
int n,
int c)
for(
int i=
2; im[n]
[c]=m[n-1]
[c];
if(w[n-1]
<=c)
}void
traceback
(int w,
int n,
int c,
int x)
}}intmain()
;int v[5]
=;int c=10;
knapsack
(w,v,n,c)
;int i,j;
for(i=
1; i<=n; i++
) cout
(w,n,c,x)
;for
(int k=
1; k<=n; k++
) cout<<<
" ";
return0;
}
#0-1揹包問題
#include
using
namespace std;
int m[
100]
[100];
intmax
(int a,
int b)
intkanpsack
(int v,
int w,
int c,
int n)
} m[0]
[c]=m[1]
[c];
if(w[0]
<=c)
return m[0]
[c];
}void
traceback
(int w,
int c,
int n,
int x)
} x[n-1]
=(m[n-1]
[c])?1
:0;}
intmain()
;int v[5]
=;int c=10;
int s=
kanpsack
(v,w,c,n)
; cout
(w,c,n,x)
;for
(int k=
0; k) cout<<<
" ";
return0;
}
#include
#include
int v[
200]
[200];
//前i個物品裝入容量為j的揹包中獲得的最大價值
intmax
(int a,
int b)
intknapsack
(int n,
int w,
int v,
int x,
int c)
} j = c;
for(i = n -
1; i >=
0; i--
)else
x[i]=0
;}printf
("選中的物品是:\n");
for(i =
0; i)printf
("%d "
, x[i]);
printf
("\n");
for(
int i =
0; i < n; i++)}
}return v[n -1]
[c];
}int
main()
;//物品的重量
int v[5]
=;//物品的價值
int x[5]
;//物品的選取狀態
int n =5;
int c=10;
//揹包最大容量
s =knapsack
(n, w, v, x, c)
;printf
("最大物品價值為:\n");
printf
("%d\n"
, s)
;system
("pause");
return0;
}
動態規劃 01揹包
最優二叉查詢樹.cpp 定義控制台應用程式的入口點。01揹包問題。include stdafx.h include include define n 3 the number of real node define m 10 using namespace std int tmain int arg...
01揹包動態規劃
0 1揹包 問題描述 乙個旅行者有乙個最多能用 m公斤的揹包,現在有 n件物品,它們的重量 分別是w1,w2 wn,它們的價值分別為 c1,c2,cn.若每種物品只有一 件求旅行者能獲得最大總價值。輸入格式 w 第一行 兩個整數,m 揹包容量,m 200 和n 物品數量,n 30 w第2.n 1 行...
0 1揹包(動態規劃)
題意 有n件物品和乙個容量為v的揹包。第i件物品的體積是c i 價值是w i 求解將哪些物品裝入揹包可使價值總和最大。基本思路 這是最基礎的揹包問題,特點是 每種物品僅有一件,可以選擇放或不放。用子問題定義狀態 即f i v 表示前i件物品恰放入乙個容量為v的揹包可以獲得的最大價值。則其狀態轉移方程...