description
設有n 種物品,每種物品有乙個重量及乙個價值。但每種物品的數量是無限的,同時有乙個揹包,最大載重量為m,今從n 種物品中選取若干件(同一種物品可以多次選取),使其重量的和小於等於m,而價值的和為最大。
input
第一行:兩個整數,m(揹包容量,m<= 200)和n(物品數量,n<= 30); 第2..n+1 行:每行二個整數wi,ui,表示每個物品的重量和價值。
output
僅一行,乙個數,表示最大總價值。
sample input
12 4
2 1
3 3
4 5
7 9
sample output
f[j]=min(f[j],f[j-w[i]+u[i])
1<=i<=n;
0<=j<=m
**如下:
var n,m,i,j:longint;
w,u:array[1..30]of longint;
f:array[0..200]of longint;
begin
readln(m,n);
for i:=1
to n do readln(w[i],u[i]);
f[0]:=0;
for i:=1
to n do
for j:=0
to m do
if (w[i]<=j)and(f[j]<=f[j-w[i]]+u[i]) then
f[j]:=f[j-w[i]]+u[i];
write(f[m]);
end.
SSL 1376 完全揹包
設有n 種物品,每種物品有乙個重量及乙個價值。但每種物品的數量是無限的,同時有乙個揹包,最大載重量為m,今從n 種物品中選取若干件 同一種物品可以多次選取 使其重量的和小於等於m,而價值的和為最大。第一行 兩個整數,m 揹包容量,m 200 和n 物品數量,n 30 第2 n 1 行 每行二個整數w...
01揹包,完全揹包
動態規劃 動態規劃的核心是狀態以及狀態轉移方程。需要定義乙個 i,j 狀態以及該狀態的指標函式d i,j 01揹包 有n種物品,每種只有乙個,第i件物品的體積為vi質量為wi。選一些物品裝到體積為c的揹包中,使其體積不超過c的前提下重量最大。namevw abcd e 子問題定義 dp i j 表示...
(揹包二)完全揹包
public class beibaocomplete int weight int capacity 8 int value int weight int capacity 12 int result packagecomplete value,weight,capacity system.out...