求pascal 01背包问题源代码(恰好装满时)
饿徒。。。
2024-06-28 05:43:46
最佳回答
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. 20210311