跳马问题
洛谷P1644
//
// main.cpp
// 跳马
//
// Created by Helen on 2020/2/17.
// Copyright © 2020 Helen. All rights reserved.
//
#include <iostream>
using namespace st
int n,m,ans=0;
int jump[19][19]; // 记录数据的数组
void dfs(int a,int b) // 深搜
{
if (a>m || b>n || a<0 || b<0 || jump[a][b]==1)//越界就退出
return;
if (a==m && b==n)//如果到目的地就答案加一
{
ans++;
return;
}
jump[a][b]=1;//记录已经查过了
dfs(a+2,b+1);//判断四个日
dfs(a+1,b+2);
dfs(a-2,b+1);
dfs(a-1,b+2);
jump[a][b]=0;
}
int main ()
{
cin >> m >> n;
dfs(0,0);//从起点开始算
cout << ans << endl;
return 0;
}