洛谷 P1644 跳馬問題 (深搜dfs)
阿新 • • 發佈:2021-10-22
題目背景
在愛與愁的故事第一彈第三章出來前先練練四道基本的回溯/搜尋題吧……
題目描述
中國象棋半張棋盤如圖1所示。馬自左下角(0,0)向右上角(m,n)跳。規定只能往右跳,不準往左跳。比如圖1中所示為一種跳行路線,並將路徑總數打印出來。
輸入格式
只有一行:兩個數n,m。
輸出格式
只有一個數:總方案數total。
輸入輸出樣例
輸入 #14 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; }