DFS全排列問題

2022-02-15 23:12:51 字數 683 閱讀 4756

題目描述

今天,桐桐的老師布置了一道數學作業,要求列出所有從數字1到數字n的連續自然數的排列,要求所產生的任一數字序列中不允許出現重複的數字。因為排列數很多,桐桐害怕寫漏了,所以她決定用計算機程式設計來解決。

輸入只有乙個整數n(1≤n≤9)。

輸出按字典序輸出由1~n組成的所有不重複的數字序列,每行乙個序列,每個數字之間有乙個空格。

樣例輸入

3 樣例輸出

1 2 3

1 3 2

2 1 3

2 3 1

3 1 2

#include #define ll long long

const

int maxn = 1002

;using

namespace

std;

int n;int vis[10],a[10];//

用兩個一維陣列,乙個表示盒子,乙個表示撲克牌

void dfs(int

step)

printf(

"%d\n

",a[i]);

return

; }

for(int i=1;i<=n;i++)

}return;}

intmain()

dfs全排列問題

全排列問題,不是計算全排列a,是把全排列列印出來,這也是dfs的一道入門題目,值得學習。問題 a 遞迴入門 全排列 題目描述 排列與組合是常用的數學方法。先給乙個正整數 1 n 10 例如n 3,所有組合,並且按字典序輸出 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 輸入...

dfs解決全排列問題

給定乙個n 0該問題相當於找出從某點到目的點的所有路徑問題,於是想到用dfs深度優先演算法,找到一條路徑即可直接輸出,直到找到所有的路徑。思路大致是,先放置乙個數,然後在沒有放置過的數字當中選擇乙個放在下乙個位置,依次進行,那我們發現,其實在選擇放置下乙個數字時,和解決之前的問題是一樣的 還是要在沒...

全排列問題 深搜DFS

description 輸出自然數 1 到 n 所有不重複的排列,即 n 的全排列,要求所產生的任一數字序列中不允許出現重複的數字。input 第一行為乙個整數n。output 由1至n組成的所有不重複的數字序列,每行乙個序列。每個數字之間由空格隔開。sample input 1 3sample o...