全排列

#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. Concise and clear CodeForces - 991F(dfs 有重复元素的全排列)

    就是有重复元素的全排列 #include <bits/stdc++.h> #define mem(a, b) memset(a, b, sizeof(a)) using namespace ...

  2. poj3421 X-factor Chains(重复元素的全排列)

    poj3421 X-factor Chains 题意:给定正整数$x(x<=2^{20})$,求$x$的因子组成的满足任意前一项都能整除后一项的序列的最大长度,以及满足最大长度的子序列的个数. ...

  3. 紫书 习题 10-25 UVa 1575 (有重复元素的全排列+暴搜)

    我一开始以为有什么很牛逼的方法来做,然后一直没有思路 后来看了https://blog.csdn.net/zju2016/article/details/78562932的博客 竟然是暴搜?????? ...

  4. 离散化模板题 II ——重复元素离散化后的数字不相同

    离散化模板题 II --重复元素离散化后的数字不相同 题目描述 现有数列A1, A2, ⋯, An,数列中可能有重复元素. 现在要求输出该数列的离散化数列,重复元素离散化后的数字不相同. 输入 第一行 ...

  5. 离散化模板题 I ——重复元素离散化后的数字相同

    离散化模板题 I --重复元素离散化后的数字相同 题目描述 现有数列A1, A2, ⋯, An,数列中可能有重复元素. 现在要求输出该数列的离散化数列,重复元素离散化后的数字相同.  输入 第一行,一 ...

  6. 剑指 Offer 38. 字符串的排列 + 无重复元素的全排列

    剑指 Offer 38. 字符串的排列 Offer_38 题目描述 解题思路 可以使用递归实现全排列,每次都确定一个数的位置,当所有位置的数都确定后即表示一个排列. 但是考虑到本题需要排除重复的排列, ...

  7. 刷题——有重复元素的全排列(Permutations II)

    题目如上所示. 我的解决方法(参考了九章的答案!): class Solution { public: /* * @param : A list of integers * @return: A li ...

  8. dfs 全排列 使用交换——含重复元素和非重复元素

    15. 全排列 中文 English 给定一个数字列表,返回其所有可能的排列. 样例 样例 1: 输入:[1] 输出: [ [1] ] 样例 2: 输入:[1,2,3] 输出: [ [1,2,3], ...

  9. [leetcode]47. Permutations全排列(给定序列有重复元素)

    Given a collection of numbers that might contain duplicates, return all possible unique permutations ...

随机推荐

  1. [翻译].NET Core 3 Preview1和Windows桌面框架开源

    原文来自TechViews 今天,我们宣布推出.NET Core 3 Preview 1.这是.NET Core 3的第一个公开发布.我们有一些令人兴奋的新功能可供分享,并希望得到您的反馈.您可以使用 ...

  2. redis所有数据结构及对象------redis设计与实现

    建议点开原图看

  3. brew - 安装gradle

    我安装完brew之后,马上开始安装gradle,但是shell总是卡在执行"brew update"这里,今天终于解决了,出现这样问题的原因是初次安装brew,它使用的源是国外的, ...

  4. 【2019年OCP新题】OCP题库更新出现大量新题-11

    11.Your database is in archivelog mode. You want to disable archiving for the database. Examine thes ...

  5. list页面-按照choice筛选丶传condition过滤筛选项丶筛选与显示同步

    1.list页面:筛选功能优化,显示choices,传condition过滤筛选项 list_filter = [     # sites.FilterOption("name", ...

  6. php 删除二维数组中某个key值

    /** * 根据key删除数组中指定元素 * @param array $arr 数组 * @param string/int $key 键(key) * @return array */ priva ...

  7. 【xsy1611】 数位dp 数位dp

    这题是显然的数位$dp$,然而我居然写了一个下午!!! 我们不难想到差分,令$solve(x,y)$表示从第一个数字在区间$[0,x]$,第二个数字在区间$[0,y]$的答案. 不难发现题目中给了你一 ...

  8. WebDriverAPI(6)

    在指定元素上方进行鼠标悬浮 测试网址 http://www.baidu.com Java语言版本实例 @Test public void roverOnElement() { driver.manag ...

  9. Dubbo架构设计详解(转载)

    原文地址:http://shiyanjun.cn/archives/325.html Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解 ...

  10. 使用vue模拟购物车小球动画

    使用vue模拟购物车小球动画 1.效果演示 2.相关代码 <!DOCTYPE html> <html lang="en"> <head> < ...