#include<iostream>
using namespace std;
int n,m,res;
//方向数组
int dx[]={-2,-1,1,2};
int dy[]={1,2,2,1};
void dfs(int x,int y){
if(x==n&&y==m){
res++;return;
}
for(int i=0;i<4;i++){
int a=x+dx[i],b=y+dy[i];
if(a<0||a>n||b>m)continue;//越界
dfs(a,b);
}
}
int main(){
cin>>n>>m;
dfs(0,0);
cout<<res;
return 0;
}
小知识点:
1)学会设置偏移量(探照灯)
2)学会判越界、判重、回溯
注意点:
1)数据在输入的时候,先输入的是 y坐标,后x坐标,因而在设置递归结束条件条件和设置边界
的时候要注意不要搞混了