记录编号 410400 评测结果 AAAAAAAAAA
题目名称 跳马问题 最终得分 100
用户昵称 Gravatarwhite 是否通过 通过
代码语言 C++ 运行时间 0.026 s
提交时间 2017-05-31 20:09:24 内存使用 0.32 MiB
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
int n,m,s=0;
int dx[]={1,2,2,1},dy[]={-2,-1,1,2};
bool check(int x,int y)
{
	return x<=n&&x>=1&&y<=m&&y>=1;
}
struct node{
	int x,y;
}now;
void bfs(){
	queue <node> q;
	now.x=1;
	now.y=1;
	q.push(now);
	while(!q.empty())
	{
		node next=q.front();
		q.pop();
		for(int i=0;i<4;i++)
		{
			node la=next;
			la.x=next.x+dx[i];
			la.y=next.y+dy[i];
			if(check(la.x,la.y))
			{
				if(la.x==n&&la.y==m)
					s++;
				else
					q.push(la);
			}
		}
	}
	cout<<s;
}
int main(){
	freopen("horse.in","r",stdin);
	freopen("horse.out","w",stdout);
	cin>>m>>n;
	bfs();
	return 0;
}