深度優先搜尋解決全排列問題

2021-09-03 08:24:11 字數 496 閱讀 2952

題目:假如有編號為1、2、3的3張撲克牌和編號為1、2、3的3個盒子。現在需要將這3張撲克牌分別放到3個盒子裡,並且每個盒子有且只能放一張撲克牌。那麼一共有多少種不同的排法?

**及注釋:

#include

//全域性變數,陣列元素值自動初始化為0

int a[10]

;//充當盒子編號

int book[10]

;//用book[i] = 0或1來表示撲克牌i是否在手上

int n;

void

dfs(

int step)

printf

("\n");

}for

(i=1

; i<=n; i++)}

}int

main()

思考:_ _ x _ _ = _ _ _ + _ _ _從1 ~ 9中填入9個數,每個數不相同,使等式成立。

答案:

全排列(深度優先搜尋)

description 列出所有數字1到數字n的連續自然數的排列,要求所產生的任一數字序列中不允許出現得復數字。input 輸入 n 1 n 9 output 由1 n組成的所有不重複的數字序列,每行乙個序列。sample input 3 sample output 1 2 3 1 3 2 2 1 ...

深度優先搜尋 全排列

題目要求 輸入乙個數n,輸出1 n的全排列。比如,輸入3,輸出123 132 213 231 312 321。解題思路 用深度優先搜尋,假設有n個盒子,從第乙個盒子開始依次放直到放到最後乙個盒子,期間用到遞迴呼叫。放到最後乙個後,再依次返回,進行重新組合,其中還用到標記陣列來判斷是否被用過。實現 i...

深度優先搜尋解決八皇后問題

八皇后問題是什麼 八皇后問題,是乙個古老而著名的問題,是回溯演算法的典型案例。該問題是國際西洋棋棋手馬克斯 貝瑟爾於1848年提出 在8 8格的西洋棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行 同一列或同一斜線上,問有多少種擺法。高斯認為有76種方案。1854年在柏林的象棋雜誌...