洛谷 P1706 全排列問題 STL dfs

2022-09-10 16:09:29 字數 898 閱讀 3327

輸出自然數1到n所有不重複的排列,即n的全排列,要求所產生的任一數字序列中不允許出現重複的數字。

輸入格式:

n(1≤n≤9)

輸出格式:

由1~n組成的所有不重複的數字序列,每行乙個序列。每個數字保留5個常寬。

輸入樣例#1: 

3

輸出樣例#1: 

1    2    3

1 3 2

2 1 3

2 3 1

3 1 2

3 2 1

第一種:用stl函式庫裡next_permutation(公升序),prev_permutation(降序),標頭檔案:#include

返回值:如果有乙個更高的排列,它重新排列元素,並返回true;如果這是不可能的(因為它已經在最大可能的排列),它按公升序排列重新元素,並返回false。

#include#include#includeusing namespace std;

int main()

cout << "\n";

} while (next_permutation(a + 1, a + n + 1));

return 0;

}

第二種:用dfs實現全排列

#include#include#includeusing namespace std;

int n, a[10], book[10];//a[i]代表第i個數,book標記用沒用過,0就沒用過

void dfs(int c)

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

} return;

}int main()

洛谷 P1706 全排列問題

題目描述 輸出自然數 11 到 nn 所有不重複的排列,即 nn 的全排列,要求所產生的任一數字序列中不允許出現重複的數字。輸入格式 乙個整數 nn。輸出格式 由 1 sim n1 n 組成的所有不重複的數字序列,每行乙個序列。每個數字保留 55 個場寬。輸入輸出樣例 輸入 1 複製 3輸出 1 複...

洛谷P1706全排列問題

p1706全排列問題 題目描述 輸出自然數1到n所有不重複的排列,即n的全排列,要求所產生的任一數字序列中不允許出現重複的數字。輸入輸出格式 輸入格式 n 1 n 9 輸出格式 由1 n組成的所有不重複的數字序列,每行乙個序列。每個數字保留5個常寬。輸入輸出樣例 輸入樣例 1 3輸出樣例 1 1 2...

洛谷 P1706 全排列

可能是最簡單的題了 講真搜尋hhh 洛谷 輸出自然數1到n所有不重複的排列,即n的全排列,要求所產生的任一數字序列中不允許出現重複的數字。輸入格式 n 1 n 9 輸出格式 由1 n組成的所有不重複的數字序列,每行乙個序列。每個數字保留5個常寬。輸入樣例 1 3 輸出樣例 1 1 2 3 1 3 2...