讨论 / 为什么暴搜超时1个 5个全错 大牛帮忙看看!
woshiyaoxin 2010-08-29 15:57:00
点我顶贴 收藏 删除
var n,i,j,k,d,g,d1,g1:integer;

a:array[1..1000,1..3] of integer;

procedure find(x,y,z:integer);

var i,j,k:integer;

begin

if y>=d then

begin

write(a[z-1,1]);

halt;

end;

if (z>g) or (x<a[z,1]) then

begin

if x>g1 then g1:=x;

exit;

end;

for j:=1 to 2 do

begin

if j=1 then

begin

if x>=a[z,1] then find(x,y+a[z,3],z+1);

end

else

begin

if x>=a[z,1] then find(x+a[z,2],y,z+1)

end;

end;

end;

begin

readln(d,g);

for i:=1 to g-1 do

for j:=1 to g do

begin

if a[i,1]>a[i+1,1] then

begin

d1:=a[i,1];

a[i,1]:=a[i+1,1];

a[i+1,1]:=d1;

d1:=a[i,2];

a[i,2]:=a[i+1,2];

a[i+1,2]:=d1;

d1:=a[i,3];

a[i,3]:=a[i+1,3];

a[i+1,3]:=d1;

end;

end;

for i:=1 to g do readln(a[i,1],a[i,2],a[i,3]);

find(10,0,1);

write(g1);

end.

#1 woshiyaoxin@2010-08-27 05:30:00
回复 删除
得分: 40分

提交日期: 2010-8-27 20:20:00

有效耗时: 610毫秒

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

测试结果2: 通过本测试点|有效耗时47ms

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

测试结果4: 选手程序运行超过时限

测试结果错误.错误结果为:109

正确结果应为:510

测试结果错误.错误结果为:109

正确结果应为:615

测试结果错误.错误结果为:109

正确结果应为:2980

测试结果错误.错误结果为:109

正确结果应为:45

测试结果9: 通过本测试点|有效耗时250ms

测试结果错误.错误结果为:26

正确结果应为:187

#2 cjj@2010-08-27 06:55:00
回复 删除
范围问题把

把intger换成longint试试

#3 woshiyaoxin@2010-08-29 15:57:00
回复 删除
没有用 555555555暴搜应该只会超时,怎么会错呢?
查看更多回复
提交回复