讨论 / (开心的金明)求挑错!!!
lai 2013-11-03 05:52:01
点我顶贴 收藏 删除
为什么只有60啊、、?

program l1;

var limit,k,i,t:integer; a:array[0..25]of longint;w:array[0..25]of integer;

f:array[0..25,0..30000]of longint;

function max(c,b:longint):longint;

begin

if c>b then max:=c else max:=b;

end;

begin

readln(limit,k);

for i:=1 to k do

begin

readln(a[i],t);

w[i]:=a[i]*t;

end;

for i:=1 to k do f[i,0]:=0;

for i:=1 to limit do f[0,i]:=0;

for i:=1 to k do

for t:=limit downto 1 do

if a[i]<=t then f[i,t]:=max(f[i-1,t-a[i]]+w[i],f[i-1,t])

else f[i,t]:=f[i-1,t];

writeln(f[k,limit]);

end.

#1 孤独小侠@2013-11-04 05:23:06
回复 删除
数组开小了...

w:array[0..25]of integer; 应该为 w:array[0..25]of longint;

查看更多回复
提交回复