#include<stdio.h>
long long path[21][21];
int dir[8][2]={{1,2},{1,-2},{2,1},{2,-1},
{-1,2},{-1,-2},{-2,1},{-2,-1}};
int main()
{
int i,j,k;
int n,m,x,y;
scanf("%d%d%d%d",&n,&m,&x,&y);
path[1][1]=1;
for(i=0;i<21;i++)
path[i][0]=path[0][i]=0;
for(i=1;i<=n;i++)
{
for(j=2;j<=m;j++)
{
path[i][j]=0;
if(i==x &&j==y)continue;
for(k=0;k<8;k++)
{
if(i+dir[k][0]!=x || j+dir[k][1]!=y)
continue;
else break;
}
if(k==8)
{
path[i][j]=path[i-1][j]+path[i][j-1];
}
}
}
printf("%d",path[n][m]);
return 0;
}
这是小弟的程序,但是通不过,不知错在哪里
[此贴子已经被作者于2006-12-2 9:20:19编辑过]