8594有重复元素的排列问题

时间:2015-11-22 06:42:18
【文件属性】:

文件名称:8594有重复元素的排列问题

文件大小:675B

文件格式:TXT

更新时间:2015-11-22 06:42:18

重复元素排列

8594 有重复元素的排列问题 时间限制:800MS 内存限制:1000K 提交次数:524 通过次数:95 题型: 编程题 语言: 无限制 Description Input 第1行是元素个数n,1<=n<=15。接下来的1行是待排列的n个元素,元素中间不要加空格。Output 程序运行结束时,将计算输出n个元素的所有不同排列。最后1行中的数是排列总数。 (说明: 此题,所有计算出的排列原本是无所谓顺序的。但为了容易评判,输出结果必须唯一! 现做约定:所有排列的输出顺序如课本P11的例2-4的程序段的输出顺序,区别仅是这道题是含重复元素。) Sample Input 4 aacc Sample Output aacc acac acca caac caca ccaa 6 Hint 课本上有“递归”实现无重复元素全排列的源程序。 稍加修改即可满足此题要求。 在递归产生全排列的那段程序开始之前, 加一个判断:判断第i个元素是否在list[k,i-1]中出现过。 Permpp(char list[], int k, int m) { ...... for (int i=k; i<=m; i++) { if (Findsame(list,k,i))//判断第i个元素是否在list[k,i-1]中出现过 continue; Swap (list[k], list[i]); Permpp(list, k+1, m); Swap (list[k], list[i]); } }


网友评论