- fillchar(f,sizeof(f),255);
- fillchar(oo,sizeof(oo),255);
- f[0,0,0]:=0;
- for i:=1 to n do
- for j:=0 to a do
- for k:=0 to b do begin
- f[i,j,k]:=f[i-1,j,k];
- jj:=j-x[i];
- if jj<0 then jj:=0;
- kk:=k-y[i];
- if kk<0 then kk:=0;
- if (f[i-1,jj,kk]<>oo) and (f[i-1,jj,kk]+w[i]<f[i,j,k]) then
- f[i,j,k]:=f[i-1,jj,kk]+w[i];
- end;
双重背包
注意边界的处理
因为只要不小于的
所以用 -
注意!!!!!!!!!!!!