记录编号 |
410400 |
评测结果 |
AAAAAAAAAA |
题目名称 |
跳马问题 |
最终得分 |
100 |
用户昵称 |
white |
是否通过 |
通过 |
代码语言 |
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;
}