题目背景
在爱与愁的故事第一弹第三章出来前先练练四道基本的回溯/搜索题吧……
题目描述
中国象棋半张棋盘如图 11 所示。马自左下角 (0,0)(0,0) 向右上角 (m,n)(m,n) 跳。规定只能往右跳,不准往左跳。比如图 11 中所示为一种跳行路线,并将路径总数打印出来。
输入格式
只有一行:两个数 nn,mm。
输出格式
只有一个数:总方案数 totaltotal。
输入输出样例
输入 #1
4 8
输出 #1
37
import java.util.*;
public class Main {
public static void main(String[] args) {
new Main().sf();
}
int n = 0, m = 0;
int[] a = new int[] { 1, 2, 1, 2 };
int[] b = new int[] { 2, 1, -2, -1 };
int t = 0;
public void sf() {
Scanner in = new Scanner(System.in);
n = in.nextInt();
m = in.nextInt();
in.close();
dfs(0, 0);
System.out.println(t);
}
public void dfs(int x, int y) {
if (x == m && y == n) {
t++;
return;
}
for (int i = 0; i < 4; i++) {
if (x + a[i] < 0 || y + b[i] < 0 || x + a[i] > m || y + b[i] > n) {
continue;
}
dfs(x + a[i], y + b[i]);
}
}
}