- 马拦过河卒
- 2009-07-13 17:53:27 @
我是这样做的,可是怎么也想不通为什么错,更想不通为什么会输出负的
var
a:array[-2..17,-2..17] of integer;
b:array[-2..17,-2..17] of boolean;
i,x1,x2,y1,y2:integer;
function f(x,y:integer):integer;
var
s:integer;
begin
if b[x,y] then f:=a[x,y]
else begin s:=f(x-1,y)+f(x,y-1); b[x,y]:=true; f:=s; a[x,y]:=s; end;
end;
begin
read(x1,y1,x2,y2);
fillchar(a,sizeof(a),0);
fillchar(b,sizeof(b),false);
b[x2,y2]:=true;
b[x2+1,y2+2]:=true;
b[x2+1,y2-2]:=true;
b[x2-1,y2+2]:=true;
b[x2-1,y2-2]:=true;
b[x2+2,y2+1]:=true;
b[x2+2,y2-1]:=true;
b[x2+2,y2+1]:=true;
b[x2-2,y2-1]:=true;
b[x2-2,y2+1]:=true;
for i:=0 to x1 do begin a:=1; b:=true; end;
for i:=0 to y1 do begin a[0,i]:=1; b[0,i]:=true; end;
writeln(f(x1,y1));
end.
编译通过...
├ 测试数据 01:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案错误...程序输出比正确答案长
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 09:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 10:答案错误... ├ 标准行输出
├ 错误行输出
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:50 有效耗时:0ms
1 条评论
-
wdb123 LV 5 @ 2009-07-23 16:37:03
可能是程序的数据范围定小了
可能是程序的数据范围定小了,建议使用longint;至于第三组,我也没想通
- 1