求Pascal 01背包问题源代码(恰好装满时)
01还要完全装满,你是不是要完全背包啊?因为01刚好装满的几率可不是100%噢
program package;
const maxn=200;
var w,c:array[1..30] of longint;
f:array[0..30,0..maxn] of longint;
i,j,n,m:longint;
function max(x,y:longint):longint;
begin
if x>y then max:=x
else max:=y;
end;
begin
assign(input,'x.in'); reset(input);
assign(output,'x.out'); rewrite(output);
readln(m,n);
for i:=1 to n do readln(w[i],c[i]);
for i:=0 to m do f[0,i]:=0;
for i:=0 to n do f[i,0]:=0;
for i:=1 to n do
for j:=1 to m do
if j>=w[i] then f[i,j]:=max(f[i-1,j-w[i]]+c[i],f[i-1,j])
else f[i,j]:=f[i-1,j];
writeln(f[n,m]);
close(output);
end....
8252