题目描述
在5X5的棋盘上,给定一位置,输出马回到原点有多少种不同的方案。
注意:马走的每一步必须在棋盘上,走斜日,如下图:
输入
给定一位置,x ,y,中间有一空格隔开。
输出
输出可以回到原点的方案总数
样例输入
1 1
样例输出
61424
#include<iostream>
using namespace std;
int cf[8][2]={{-2,-1},{-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2},{-1,-2}},x,y,ans;
bool bz[6][6];
void horse(int n,int m)
{
bz[n][m]=1;
for(int i=0;i<8;i++)
{
int xx=n+cf[i][0],yy=m+cf[i][1];
if(xx<=5&&xx>0&&yy<=5&&yy>0)
{
if(bz[xx][yy]==0)
{
bz[xx][yy]=1;
horse(xx,yy);
bz[xx][yy]=0;
}
if(xx==x&&yy==y) ans++;
}
}
}
int main()
{
cin>>x>>y;
horse(x,y);
cout<<ans;
return 0;
}