讨论 / 《390-地震了!》——为什么老跟标准答案0点几?求教!
RAMBO 2008-11-11 17:20:00
点我顶贴 收藏 删除
是精度问题么?求教高手指点,万分感谢!!

我的输出是:write(ans/(n-1):0:2)

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

正确结果应为:36.53

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

正确结果应为:68.14

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

正确结果应为:115.81

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

正确结果应为:113.07

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

正确结果应为:86.16

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

正确结果应为:88.31

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

正确结果应为:88.74

#1 RAMBO@2008-11-11 07:29:00
回复 删除
d
#2 xiaokeke@2008-11-11 14:07:00
回复 删除
换下数据类型看看……
#3 woshidabaichi@2008-11-11 16:30:00
回复 删除
仔细读题,速度读倒了
#4 SecretAgent@2008-11-11 16:43:00
回复 删除
我也是这样的~

测试结果1: 测试结果错误.错误结果为:59.45

正确结果应为:59.44

测试结果2: 输出过长|用户输出数据超过标准输出两倍[标准输出5位|选手输出36位]

测试结果3: 测试结果错误.错误结果为:68.28

正确结果应为:68.14

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

测试结果5: 输出过长|用户输出数据超过标准输出两倍[标准输出6位|选手输出36位]

测试结果6: 通过本测试点|有效耗时391:ms

测试结果7: 测试结果错误.错误结果为:91.09

正确结果应为:90.60

测试结果8: 测试结果错误.错误结果为:86.40

正确结果应为:86.16

测试结果9: 测试结果错误.错误结果为:88.58

正确结果应为:88.31

测试结果10: 测试结果错误.错误结果为:89.02

正确结果应为:88.74

提交代码: program Agent;

var

n,v,k:longint;

a:array[1..100]of longint;

maxv:longint;

pv:real;

g:array[1..100,1..100,1..10000] of boolean;

procedure init;

var

i,x,y:longint;

begin

read(n,v,k);

for i:= 2 to n do read(a[i]);

end;

procedure search(t,v,w:longint);

var

i,x,y:longint;

begin

if t=1 then

begin

if w>maxv then maxv:=w;

exit;

end;

if g[t,v,w]=true then exit;

if v>a[t]+k then exit;

if v<a[t] then exit;

g[t,v,w]:=true;

search(t-1,v-1,w+v-1);

search(t-1,v,w+v);

search(t-1,v+1,w+v+1);

end;

procedure main;

var

i,x,y:longint;

begin

search(n-1,v,v);

end;

procedure print;

begin

if maxv>0 then

begin

pv:=maxv/(n-1);

write(pv:0:2);

end

else

write(’YI DING YAO JIAN CHI JI HUA SHENG YU’);

end;

begin

init;

main;

print;

end.

#5 SecretAgent@2008-11-11 17:20:00
回复 删除
我终于知道了

if v>a[t]+k then exit;

if v<a[t] then exit;

我楼层对应的速度错了

应该是:

if v>a[t+1]+k then exit;

if v<a[t+1] then exit;

LZ你看看你的楼层对应的速度有没有问题。

查看更多回复
提交回复