侯霜 2009-03-12 04:19:00
点我顶贴
收藏
删除
这个完全背包不知为什么要赋初值为-maxlongint呀?????????
var
M,N,i,j:integer;
W,Q:array[1..5000]of integer;
f:array[0..10000]of longint;
function max(x,y:longint):longint;
begin
if x>y then exit(x)
else exit(y);
end;
begin
readln(N,M);
for i:=1 to N do
readln(W[i],Q[i]);
filldword(f,sizeof(f)div 4,-maxint);
f[0]:=0;
for i:=1 to N do
for j:=0 to M-W[i] do
f[j+W[i]]:=max(f[j+W[i]],f[j]+Q[i]);
write(f[M]);
end.