【模板】 全排列 && 有重复元素的全排列
2024-08-26 07:47:04
全排列
#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 ;
}
最新文章
- 谈一谈SQL Server中的执行计划缓存(上)
- dragsort html拖拽排序
- 拓扑排序&;&;欧拉(回)路
- Module &#39;fileinfo&#39; already loaded in Unknown on line 0
- oracle判断字段是否存在语句
- vim - Highlight unwanted spaces
- 第二章-如何使用github建立一个HelloWorld项目,git的add/commit/push/pull/fetch/clone等基本命令用法。--答题人:杨宇杰
- LR(0)语法分析
- Java Vector 类
- Android Studio之could not reserve enough space for object heap
- Js,alert出现乱码问题,赶紧记下来,额~~~
- 1分钟快速生成用于网页内容提取的xslt
- Netty 学习系列
- 报错【org.springframework.validation.BeanPropertyBindingResult】
- 装了anaconda之后如何设置anaconda、python环境变量
- 01_新建WebApi后端服务项目
- Linux CenterOS安装mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz步骤
- Python:Day41 http、css
- Python selectors实现socket并发
- 金三银四:蚂蚁金服JAVA开发面试题及答案之一面(持续更新
热门文章
- 在微信开发中如果WeixinJSBridge.call(&#39;closeWindow&#39;);关闭窗口无效!
- [.net]数组
- Day 13 迭代器,生成器.
- cassandra用户名和密码的设置
- 【css】——三种方法实现多列等高
- Manjaro Linux执行某些命令缺少libtinfo.so.5问题
- Swift 里字符串(九)UTF16View
- execvp php-fpm reload使用的函数
- js之global 对象 方法
- OS之进程管理 --- 死锁