51nod 1384 全排列 (dfs/next_permutation)
2017-01-09 12:20
337 查看
我胡汉三又回来了。
#include<queue>
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char a[15],ans[15];
int book[15];
int str;
int dfs(int t)
{
if(t==str)
{
printf("%s\n",ans);
return 0;
}
for(int i=0; i<str; i++)
{
if(book[i]==0)
{
book[i]=1;
ans[t]=a[i];
dfs(t+1);
book[i]=0;
while(a[i]==a[i+1]) i++; //细节问题。需要注意。
}
}
}
int main()
{
scanf("%s",a);
str=strlen(a);
sort(a,a+str);
dfs(0);
//next_permutation
}
1384 全排列
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题
收藏
关注
给出一个字符串S(可能又重复的字符),按照字典序从小到大,输出S包括的字符组成的所有排列。例如:S = "1312",
输出为:
1123 1132 1213 1231 1312 1321 2113 2131 2311 3112 3121 3211
Input
Output
Input示例
Output示例
#include<queue>
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char a[15],ans[15];
int book[15];
int str;
int dfs(int t)
{
if(t==str)
{
printf("%s\n",ans);
return 0;
}
for(int i=0; i<str; i++)
{
if(book[i]==0)
{
book[i]=1;
ans[t]=a[i];
dfs(t+1);
book[i]=0;
while(a[i]==a[i+1]) i++; //细节问题。需要注意。
}
}
}
int main()
{
scanf("%s",a);
str=strlen(a);
sort(a,a+str);
dfs(0);
//next_permutation
}
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> const int MAX = 15; char s[MAX]; int main() { scanf("%s", s); int lenth = strlen(s); std::sort(s, s + lenth); printf("%s\n", s); while (std::next_permutation(s, s + lenth)) { printf("%s\n",s); } return 0; }
1384 全排列
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题
收藏
关注
给出一个字符串S(可能又重复的字符),按照字典序从小到大,输出S包括的字符组成的所有排列。例如:S = "1312",
输出为:
1123 1132 1213 1231 1312 1321 2113 2131 2311 3112 3121 3211
Input
输入一个字符串S(S的长度 <= 9,且只包括0 - 9的阿拉伯数字)
Output
输出S所包含的字符组成的所有排列
Input示例
1312
Output示例
1123 1132 1213 1231 1312 1321 2113 2131 2311 3112 3121 3211
相关文章推荐
- 【51nod】1384 全排列 next_permutation
- 1384 全排列 next_permutation()函数
- 51nod 1384 全排列 (dfs)
- 51nod 1384 全排列(next_permutation)
- 51Nod 1384 全排列(next-permutation)
- 蓝桥杯 方格填数 DFS 全排列 next_permutation用法
- 全排列生成算法:next_permutation
- 全排列与next_permutation
- 全排列 ( next_permutation)
- 计算下一个全排列(以STL中的next_permutation为例)
- STL 排序算法之全排列sort和next_permutation
- next_permutation(自动全排列)
- 51Nod基础题-1384-全排列(搜索)
- 用STL的next_permutation算法实现全排列
- 2018年全国多校算法寒假训练营练习比赛(第四场) H - 老子的全排列呢(next_permutation)
- POJ 1256 Anagram(next_permutation全排列)
- POJ 1833 排列(字典序全排列、next_permutation()、copy+流迭代器)
- 递归回溯 求N个数的全排列 及 next_permutation的使用
- 1256 Anagram 全排列 next_permutation 用法
- POJ 1731 Orders 按序输出一个字符串的全排列 next_permutation()