有重复元素的排列问题//利用全排列函数
程序员文章站
2022-03-22 19:07:33
...
-
题目描述
设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;
}
上一篇: Dance Recital
下一篇: 求一组数据的全排列