含有重复元素的排列

Description 设R={ r1, r2, ……, rn }是要进行排列的n个元素。其中元素r1 ,r2 ,……,rn可能相同。试设计一个算法,列出R的所有不同排列。给定n以及待排列的n个元素。计算出这n个元素的所有不同排列。
Input 【含有重复元素的排列】输入数据的的第1行是元素个数n,1≤n≤500。接下来的1行是待排列的n个元素。
Output 将计算出的n个元素的所有不同排列输出,每种排列占1行,最后1行中的数是排列总数。
Sample Input

4 aacc

Sample Output
aacc

acac

acca

caac

caca

ccaa

6

分析:和普通求全排列问题差不多,只是多了,判断是否重复字符而已。
关于无重复元素的排列,可以参考:http://www.cnblogs.com/huashanqingzhu/p/3569835.html
1#include 2#include 3#include 4using namespace std ; 5long long ans; 6int ok(char str[],int a ,int b ) 7{ 8if(b>a) 9for(int i=a; i

本文代码来自:http://blog.sina.com.cn/s/blog_9b95c19e0101aqwn.html

    推荐阅读