有重複元素的排列問題//利用全排列函式
阿新 • • 發佈:2019-01-06
-
題目描述
設R={r1,r2,……,rn}是要進行排列的n個元素。其中元素r1,r2,……,rn可能相同。使設計一個演算法,列出R的所有不同排列。
給定n以及待排列的n個元素。計算出這n個元素的所有不同排列。 -
輸入輸出格式
輸入格式:
第1行:元素個數n(1<=n<500)
第2行:一行字串,待排列的n個元素
輸出格式:
計算出的n個元素的所有不同排列,最後一行是排列總數。 -
輸入輸出樣例
輸入樣例#1:
4
aacc
輸出樣例#1:
aacc
acac
acca
caac
caca
ccaa
6 -
說明
輸出按字典順序排
程式碼如下
#include<cstdio>
#include<algorithm>
using namespace std;
char a[505];
int n,sum=0;
int main()
{
scanf("%d",&n);
scanf("%s",a);
sort(a,a+n);//排序,使字典序最小
do
{
puts(a);
sum++;//統計個數
}while(next_permutation(a,a+n));//利用函式
printf("%d",sum);
return 0;
}