- 马拦过河卒
- @ 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代码块 来转化为markdown代码块
- 
  @ 2013-02-19 12:05:46你的程序可读性太差了,让人怎么回答,因为可读性差,所以你自己包括他人很难找出问题 
 请将你的程序改得可读性好一些
- 1