纯深搜
没什么好说的
可以写了玩玩
//P1644 跳马问题
//2017.2.27
#include
#include
using namespace std;
int m, n, book[21][21];
int tot = 0;
void dfs(int x, int y){
if (x == m && y == n){
tot++;
return ;
}
if (book[x][y] == 1) return ;
if (x > m || y > n || x < 0 || y < 0) return ;
book[x][y] = 1;
dfs(x + 1, y + 2);
dfs(x - 1, y + 2);
dfs(x + 2, y + 1);
dfs(x - 2, y + 1);
book[x][y] = 0;
}
int main(){
scanf("%d%d", &m, &n);
dfs(0, 0);
printf("%d", tot);
return 0;
}
还可以用动规
也很简单