【问题描述】
设 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
直接利用全排列next_permutation函数
#include <algorithm>
bool next_permutation(iterator start,iterator end)
当当前序列不存在下一个排列时,函数返回false,否则返回true
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,count=0;
cin >> n;
char a[n];
for(int i=0;i<n;i++)
{
char x;
cin >> x;
a[i]=x;
}
sort(a,a+n