欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

有重复元素的排列问题//利用全排列函数

程序员文章站 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;
}

相关标签: 全排列