全排列

#include<bits/stdc++.h>
using namespace std;
int pl[];
void print (int n){
for(int i=;i<=n;i++) cout<<" "<<pl[i];
cout<<endl;
}
void pp(int n,int pos=){
if(pos==n+) {
print(n);
return ;
}
for(int i=;i<=n;i++){
bool ok=;
for(int j=;j<pos;j++){
if(pl[j]==i) ok=;
}
if(ok) {
pl[pos]=i;
pp(n,pos+);
}
}
}
int main(){
int n;
cin>>n;
pp(n);
return ;
}

有重复元素的全排列//然而并不能过所有测试点

#include<bits/stdc++.h>
using namespace std;
char pl[];
int cnt;
void print(int n){
for(int i=;i<n;i++)
cout<<pl[i];
cnt++;
cout<<endl;
}
void pp(char p[],int n,int pos=){
if(pos==n){
print (n);
return ;
}
for(int i=;i<n;i++){
if(i==||p[i]!=p[i-]){
int c1=,c2=;
c1=count (pl,pl+pos,p[i]);
c2=count (p,p+n,p[i]);
if(c1<c2){
pl[pos]=p[i];
pp(p,n,pos+);
}
}
}
}
int main(){
int n;
char ddd[];
cin>>n;
for(int i=;i<n;i++){
cin>>ddd[i];
}
pp(ddd,n);
cout<<cnt;
return ;
}

所以我用STL模板

STL大法好

这里是char类型的

#include<bits/stdc++.h>
using namespace std;
int main(){
long long cnt=;
ios::sync_with_stdio(false);
char dd[];
int n;
cin>>n;
for(int i=;i<n;i++)
cin>>dd[i];
sort (dd,dd+n);
do{
for(int i=;i<n;i++){
printf("%c",dd[i]);
}
cnt++;
printf("\n");
}while(next_permutation(dd,dd+n));
printf("%d",cnt);
return ;
}

最新文章

  1. 谈一谈SQL Server中的执行计划缓存(上)
  2. dragsort html拖拽排序
  3. 拓扑排序&amp;&amp;欧拉(回)路
  4. Module &#39;fileinfo&#39; already loaded in Unknown on line 0
  5. oracle判断字段是否存在语句
  6. vim - Highlight unwanted spaces
  7. 第二章-如何使用github建立一个HelloWorld项目,git的add/commit/push/pull/fetch/clone等基本命令用法。--答题人:杨宇杰
  8. LR(0)语法分析
  9. Java Vector 类
  10. Android Studio之could not reserve enough space for object heap
  11. Js,alert出现乱码问题,赶紧记下来,额~~~
  12. 1分钟快速生成用于网页内容提取的xslt
  13. Netty 学习系列
  14. 报错【org.springframework.validation.BeanPropertyBindingResult】
  15. 装了anaconda之后如何设置anaconda、python环境变量
  16. 01_新建WebApi后端服务项目
  17. Linux CenterOS安装mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz步骤
  18. Python:Day41 http、css
  19. Python selectors实现socket并发
  20. 金三银四:蚂蚁金服JAVA开发面试题及答案之一面(持续更新

热门文章

  1. 在微信开发中如果WeixinJSBridge.call(&#39;closeWindow&#39;);关闭窗口无效!
  2. [.net]数组
  3. Day 13 迭代器,生成器.
  4. cassandra用户名和密码的设置
  5. 【css】——三种方法实现多列等高
  6. Manjaro Linux执行某些命令缺少libtinfo.so.5问题
  7. Swift 里字符串(九)UTF16View
  8. execvp php-fpm reload使用的函数
  9. js之global 对象 方法
  10. OS之进程管理 --- 死锁