讨论 / 用高度来做不行吗
Fish、のTorres 2011-10-06 20:37:00
点我顶贴 收藏 删除
var r,d,i,j,n,t,k:longint;

a,b,c:array[0..100]of longint;

f:array[0..100,0..3100]of longint;

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

begin

if a>b then exit(a) else exit(b);

end;

begin

readln(d,n);

for i:=1 to n do readln(a[i],b[i],c[i]);

for i:=1 to n-1 do

for j:=i+1 to n do

if a[i]>a[j] then begin

t:=a[i];a[i]:=a[j];a[j]:=t;

t:=b[i];b[i]:=b[j];b[j]:=t;

t:=c[i];c[i]:=c[j];c[j]:=t;

end;

for i:=0 to n do

for j:=0 to 3100 do f[i,j]:=-999999;

f[0,10]:=0;

for i:=1 to n do begin

r:=a[i]-a[i-1];

for j:=0 to 3000 do begin

f[i,j]:=max(f[i,j],f[i-1,j+r]+c[i]);

f[i,j+b[i]]:=max(f[i,j+b[i]],f[i-1,j+r]);

if f[i,j]>=d then begin writeln(a[i]);exit;end;

end;

end;

t:=0;

for i:=1 to 3000 do

if f[n,i]>=0 then t:=max(t,f[n,i]);

writeln(t+a[n]);

end.

和讨论里有个人wa的一模一样

50分

: Unaccepted

测评机: Xeost[5]

得分: 50分

提交日期: 2011-10-7 11:29:00

有效耗时: 327毫秒

测试结果1: 通过本测试点|有效耗时62ms

测试结果2:

测试结果3: 通过本测试点|有效耗时62ms

测试结果4:

测试结果5: 通过本测试点|有效耗时62ms

测试结果6:

测试结果7:

测试结果8: 通过本测试点|有效耗时63ms

测试结果9:

测试结果10: 通过本测试点|有效耗时78ms

查看更多回复
提交回复