1. 程式人生 > 其它 >洛谷 P1644 跳馬問題 (深搜dfs)

洛谷 P1644 跳馬問題 (深搜dfs)

題目背景

在愛與愁的故事第一彈第三章出來前先練練四道基本的回溯/搜尋題吧……

題目描述

中國象棋半張棋盤如圖1所示。馬自左下角(0,0)向右上角(m,n)跳。規定只能往右跳,不準往左跳。比如圖1中所示為一種跳行路線,並將路徑總數打印出來。

輸入格式

只有一行:兩個數nm

輸出格式

只有一個數:總方案數total

輸入輸出樣例

輸入 #1
4 8
輸出 #1
37

說明/提示

對於 的資料:

#include <iostream>
using namespace std;
int m,n,t;

void dfs(int a, int b){
    if (a < 0 || a > n || b > m) return;
    if (a == n && b == m){
        t++;
    }else{
        dfs(a + 1, b + 2);
        dfs(a + 2, b + 1);
        dfs(a - 2, b + 1);
        dfs(a - 1, b + 2);
    }
}

int main(){
    cin >> n >> m;
    dfs(0, 0);
    cout << t << endl;
    return 0;
}