讨论 / 牛人帮我看看咋错了?
kingoffighters 2010-02-04 04:44:00
点我顶贴 收藏 删除
type rec=record

time,val:integer

end;

var t,m,k,i,j,max,time,vel:integer;a:array[1..100] of rec;

begin

readln(t,m);k:=1;

for i:=1 to m do

begin

readln(a[k].time,a[k].val);

if a[k].time>t then continue;

inc(k);

end;

k:=k-1;

max:=a[1].val;

for j:=1 to k do

begin

time:=a[j].time;vel:=a[j].val;

for i:=j+1 to k do

if a[i].time+time<=t then

if a[i].val+vel>max then

begin

time:=time+a[i].time;

vel:=vel+a[i].val;

max:=vel;

end;

end;

write(max);

end.

#1 Anyone_1@2008-08-19 03:04:00
回复 删除
你的max貌似没有变化,一直是a[1].val...

还有,请说一下你的思路,这个代码我有点看不懂...

#2 kingoffighters@2008-08-19 03:09:00
回复 删除
思路就是先读入,大于限制的舍,然后循环求解。MAX变啊,能过一组数据
#3 LIFE@2008-08-19 04:20:00
回复 删除
你有动态规划转移方程吗?

是动归!!经典的零一背包!是

a:array[0..maxn] of longint;

你还是!看看基础的动归去吧!!!!

#4 shenzheji@2010-02-04 04:44:00
回复 删除
......无语
查看更多回复
提交回复