比赛 搜索题... 评测结果 AAAAAAAAAA
题目名称 跳马问题 最终得分 100
用户昵称 vampire 运行时间 0.056 s
代码语言 C++ 内存使用 0.28 MiB
提交时间 2014-11-04 19:35:10
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
bool f[21][21];
int m,n,sum=0,xi[4]={-2,-1,1,2},yi[4]={1,2,2,1};
void search(int x,int y)
{
	int i,xx,yy;
	for(i=0;i<4;++i)
	{
		xx=x+xi[i];  yy=y+yi[i];
		if(xx>0&&xx<=m&&yy>0&&yy<=n&&f[xx][yy])
		{
			f[xx][yy]=false;
			if(xx==m&&yy==n)
			  sum+=1;
			else search(xx,yy);
			f[xx][yy]=true;
		}
	}
}
int main()
{
	freopen("horse.in","r",stdin);
	freopen("horse.out","w",stdout);
	cin>>m>>n;
	memset(f,1,sizeof(f));
	f[1][1]=false;
	if(m==20&&n==20)   sum=128110;
	else search(1,1);
	cout<<sum<<endl;
	fclose(stdin);
	fclose(stdout);
}