题目描述:
设R={ r1, r2 , …, rn}是要进行排列的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
提示:
满足条件排列6个,如下:aacc acac acca caac caca ccaa
超时的同学把输出改一下,不要用cout。
比如putchar(a) 输出变量a
putchar('\n')输出换行
时间限制: 1000ms
空间限制: 128MB
代码如下:
#include<bits/stdc++.h>
using namespace std;
int n,s=0;
char a[501];
int main(){
cin>>n>>a;
sort(a,a+n);
do{
for(int i=0;i<n;i++){
putchar(a[i]);
}putchar('\n');
s++;
}while(next_permutation(a,a+n));
cout<<s;
return 0;
}