- 马拦过河卒
- 2013-02-17 21:37:40 @
const
dx:array[1..2] of integer=(0,1);
dy:array[1..2] of integer=(1,0);
var
n,m,x,y,sum:longint;
f:array[0..100,0..100] of boolean;
procedure dfs(i,j:longint);
var k:longint;
begin
if (i=n) and (j=m) then inc(sum);
for k:=1 to 2 do
begin
i:=i+dx[k];
j:=j+dy[k];
if (f[i,j]=true) and (i<=n) and (j<=m) then
begin
dfs(i,j);
i:=i-dx[k];
j:=j-dy[k];
end;
end;
end;
begin
readln(n,m,x,y);
fillchar(f,sizeof(f),true);
f[x,y]:=false;
f[x-2,y+1]:=false; f[x+2,y+1]:=false;
f[x-2,y-1]:=false; f[x+2,y-1]:=false;
f[x+1,y+2]:=false; f[x-1,y+2]:=false;
f[x-1,y-2]:=false; f[x+1,y-2]:=false;
dfs(0,0);
writeln(sum);
end.
2 条评论
-
laosb LV 4 @ 2013-02-19 13:02:11
唔,代码请用来转化为markdown代码块
-
2013-02-19 12:05:46@
你的程序可读性太差了,让人怎么回答,因为可读性差,所以你自己包括他人很难找出问题
请将你的程序改得可读性好一些
- 1