U24 2016-02-12 01:56:10
点我顶贴
收藏
删除
求神犇啊,总有3个淘气的点过不去!!
uses math;
var
value,weight:array[1..100]of longint;
f:array[0..100,0..1000]of longint;
t,m,i,j:longint;
begin
read(t,m);
for i:=1 to m do f[i,0]:=0;
for i:=1 to t do f[0,i]:=0;
for i:=1 to m do read(weight[i],value[i]);
for i:=1 to m do
if weight[i]<=t then begin
for j:=weight[i] to t do f[i,j]:=max(f[i-1,j],f[i-1,j-weight[i]]+value[i]);
for j:=1 to weight[i] do f[i,j]:=f[i-1,j];
end;
write(f[m,t]);
end.
#1 zn.com@2016-02-29 05:36:28
33623
回复
删除
var a,b,c:array[1..10000]of longint;
t,m,i,j:longint;
function std(a,b:longint):longint;
begin
if a>b then exit(a)
else exit(b);
end;
begin
read(t,m);
for i:=1 to m do
read(a[i],b[i]);
for i:=1 to m do
for j:=t downto a[i] do
c[j]:=std(c[j],c[j-a[i]]+b[i]);
write(c[t]);
end.