poj1731輸出不重複全排列

2021-07-26 17:34:30 字數 833 閱讀 5995

已知乙個序列,輸出它的不重複全排列

思路1.stl應用:next_permutation函式

對陣列輸出全排列,原理每次改變當前字串變為,大小恰好原來大一階的序列。若已為最大序列,返回0。

說明:next_permutation,重新排列範圍內的元素[第一,最後乙個)

返回按照字典序排列的下乙個值較大的組合。

返回值:如果有乙個更高的排列,它重新排列元素,並返回true;如果這是不可能的

(因為它已經在最大可能的排列),它按公升序排列重新元素,並返回false。

#include #include #include #define n 205

using namespace std;

int len;

char s[n];

int main()

while(next_permutation(s,s+len));

return 0;

}

思路2:用dfs輸出全排列

1.字串初始化為公升序,保證字典序。

2.判重操作

#include #include #include #define n 205

using namespace std;

int len;

char s[n],ans[n];

int vis[n];

void dfs(int step)

for (int i = 0; i < len; i++) }

}int main()

return 0;

}

全排列不重複

include include include using namespace std int h 256 define n 100 char indexss 儲存上乙個排列的值 重複的排列是相鄰的 void quanpaiwithoutrepety char a,int len,int index...

非遞迴實現不重複序列的全排列(一)

筆者曾寫過利用遞迴實現不重複序列全排列的例子 現在給出另乙個利用進製實現的 sub pailie1 paramarray x dim starttime as single,endtime as single dim n as integer,i as long,num as integer,j a...

輸入一組不重複數字,全排列

全排列是我們讀書時課堂上已經學過東西,給出1,2,3三個數,有多少個組合方式呢?123,132,213,231,312,321 很快我們就能給出這組數的全排列,全排列個數 n n 1 n 2 1 n 看起來很easy,我以為 實現起來分分鐘的事情,然後並沒有 這是我一口氣寫完的 輸出卻什麼都沒有 v...