擅長排列的小明

2021-08-22 11:52:11 字數 1080 閱讀 5729

描述

小明十分聰明,而且十分擅長排列計算。比如給小明乙個數字5,他能立刻給出1-5按字典序的全排列,如果你想為難他,在這5個數字中選出幾個數字讓他繼續全排列,那麼你就錯了,他同樣的很擅長。現在需要你寫乙個程式來驗證擅長排列的小明到底對不對。

輸入第一行輸入整數n(1輸出

在1-n中選取m個字元進行全排列,按字典序全部輸出,每種排列佔一行,每組資料間不需分界。如樣例

樣例輸入

2

3 14 2

樣例輸出

123

1213

1421

2324

3132

3441

4243

**

[hzyqazasdf]原創

上傳者hzyqazasdf

一:全排列:

從n個不同元素中任取m(m≤n)個元素,按照一定的順序排列起來,叫做從n個不同元素中取出m個元素的乙個排列。當m=n時所有的排列情況叫全排列。

公式:全排列數f(n)=n!(定義0!=1),如1,2,3三個元素的全排列為:

1,2,3

1,3,2

2,1,3

2,3,1

3,1,2

3,2,1

共3*2*1=6種。

二:方法:

以下介紹全排列演算法四種:

(a)字典序法

(b)遞增進製數法

(c)遞減進製數法

(d)鄰位對換法

三: string 型別的next_permutation(next函式預設從小到大的順序,pre函式預設從大到小的順序)

int main()

while(next_permutation(ch,ch+strlen(ch),cmp));

}return 0;

}**:

#include#include#includeusing namespace std;

int n,n,m;

int main()

輸出結果為:12345

擅長排列的小明

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 小明十分聰明,而且十分擅長排列計算。比如給小明乙個數字5,他能立刻給出1 5按字典序的全排列,如果你想為難他,在這5個數字中選出幾個數字讓他繼續全排列,那麼你就錯了,他同樣的很擅長。現在需要你寫乙個程式來驗證擅長排列的小明到底對...

擅長排列的小明

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 小明十分聰明,而且十分擅長排列計算。比如給小明乙個數字5,他能立刻給出1 5按字典序的全排列,如果你想為難他,在這5個數字中選出幾個數字讓他繼續全排列,那麼你就錯了,他同樣的很擅長。現在需要你寫乙個程式來驗證擅長排列的小明到底對...

擅長排列的小明

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 小明十分聰明,而且十分擅長排列計算。比如給小明乙個數字5,他能立刻給出1 5按字典序的全排列,如果你想為難他,在這5個數字中選出幾個數字讓他繼續全排列,那麼你就錯了,他同樣的很擅長。現在需要你寫乙個程式來驗證擅長排列的小明到底對...