有重複元素的排列問題

2021-08-01 17:55:46 字數 943 閱讀 8747

【問題描述】

設r=是要進行排列的n個元素。其中元素r1, r2 , …, rn可能相同。試設計乙個演算法,列出r的所有不同排列。

【程式設計任務】

給定n 以及待排列的n 個元素。計算出這n 個元素的所有不同排列。

【輸入格式】

檔案的第1 行是元素個數n,1≤n≤500。接下來的1 行是待排列的n個元素。

【輸出格式】

計算出的n個元素的所有不同排列輸出。檔案最後1行中的數是排列總數。

【輸入樣例】

4 aacc

【輸出樣例】多解

aacc

acac

acca

caac

caca

ccaa

6 【解題思路】

如果是不重複的序列,直接按照最簡單的排列方式,採用遞迴的方式將第乙個元素與最後乙個元素交換,但題中會有重複的排列,所以可以增加乙個判斷的條件,判斷是否有重複的,就是這麼簡單。。

【**】

#include//萬能標頭檔案

using namespace std;

long

long ans;

int n;

char

str [1001];

/*檢查是否重複,重複返回false,不重複返回true

*/bool ok (char

str,int a,int b) }/*

傳說中的核心**

*/void perm (char

str,int k,int m)

cout }

else

}}}/*

主函式 沒毛病

*/int main()

getchar();

perm(str,0,n-1);

cout0;}

有重複元素的排列問題

源 include include include using namespace std long long ans int ok char str,int a int b fscanf ft,d n fscanf ft,s str i ans 0 perm fp,str,0,n 1 fprint...

有重複元素的排列問題

題目描述 設r 是要進行排列的n個元素。其中元素r1,r2 rn可能相同。試設計乙個演算法,列出r的所有不同排列。給定n 以及待排列的n 個元素。計算出這n 個元素的所有不同排列。輸入輸入資料的第1 行是元素個數n,1 n 500。接下來的1 行是待排列的n個元素。輸出計算出的n個元素的所有不同排列...

有重複元素的排列問題

設集合r 是要進行排列的n個元素,其中r1,r2,rn可能相同。試著設計乙個演算法,列出r的所有不同排列。即,給定n以及待排的n個可能重複的元素。計算輸出n個元素的所有不同排第1行是元素個數n,1 n 15。接下來的1行是待排列的n個元素,元素中間不要加空格。程式執行結束時,將計算輸出n個元素的所有...