有重复元素的全排列问题
来源:互联网 发布:mac倍速看视频 编辑:程序博客网 时间:2024/05/01 20:12
题目描述:
设R={ r1, r2, ……, rn
给定n以及待排列的n个元素。计算出这n个元素的所有不同排列。
源代码:
<span style="font-size:18px;">#include <iostream>#include <algorithm>#include <cstdio>#define maxn 500using namespace std ;long long ans;bool AppearBefore(char str[],int a ,int b )//!判断str中第b个元素是否在str[a ... b-1]中出现过,若没有返回真{ if(b>a) for(int i=a; i<b; i++) if(str[i]==str[b]) return true; return false;}void perm(char str[],int k,int m)//!递归函数{ int i; if(k==m) { ans++; for(i=0; i<=m; i++) printf("%c",str[i]); printf("\n"); return ; } else for(i=k; i <= m; i++) if(!AppearBefore(str,k,i) ) //!判断str数组中第i个元素是否在前面元素a[k ... i-1]中出现过。// 未出现过,此过程照旧继续,若出现过,这次以i元素打头的全排列罗列跳过。 { swap(str[k],str[i]); perm(str,k+1,m); swap(str[k],str[i]); }}int main(){ char str[maxn]; int n,i; cin>>n; ans=0; for(i=0; i<n; i++) cin>>str[i]; perm(str,0,n-1) ; printf("%lld\n",ans); return 0;}</span>
参考网站2
参考网站2
0 0
- 有重复元素的全排列问题
- 有重复元素的全排列问题
- 有重复元素的全排列问题
- 有重复元素的全排列问题
- 【基础算法】有重复元素的全排列问题
- 有重复元素的全排列
- 有重复元素的全排列
- 有重复元素的全排列
- 如何得到有重复元素的不重复全排列
- 8594 有重复元素的排列问题
- 8594 有重复元素的排列问题
- 有重复元素的排列问题
- 有重复元素的排列问题
- 有重复元素的排列问题
- 8594 有重复元素的排列问题
- 有重复元素的排列问题
- 有重复元素的排列问题
- 有重复元素的排列问题
- ios-日期组件
- Ubuntu配置apache二级域名
- seq_file实例
- 在equals()方法犯的错
- java.nio.ByteBuffer中flip、rewind、clear方法的区别
- 有重复元素的全排列问题
- C语言基础—实现两个变量交换的三种方法
- SpringMVC中的文件上传
- 加密SO文件中自定义的section
- nyoj 士兵杀敌(一) 108 (线段树)
- 学习Unity 3d,跟着雨潭老师的脚步前进。。。
- 关于正确避免僵尸进程(总结学习)
- VB6.0 支持鼠标滚轮教程
- Unix Network Programming(1)---基本概念说法