[dfs模板]全排列
输入格式
一个整数n(1<=n<=9)
输出格式
由1~n组成的所有不重复的数字序列,每行一个序列,相邻数字无需空格隔开。
样例输入1
3
样例输出1
123
132
213
231
312
321
代码
dfs
#include<bits/stdc++.h>
using namespace std;
int n,a[20],c[20];
void dfs(int k){
if(k==n+1){
for(int i=1;i<=n;i++)printf("%d",a[i]);
printf("\n");return ;
}
for(int i=1;i<=n;i++){
if(!c[i]){
a[k]=i;
c[i]=1;
dfs(k+1);
c[i]=0;
}
}
}
int main(){
cin>>n;
dfs(1);
}
next_permutaion
具体用法:next_permutaion(起始地址,末尾地址+1)
#include<bits/stdc++.h>
using namespace std;
int n,a[20];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
a[i]=i;
}
while(next_permutation(a+1,a+n+1)!=0){
for(int i=1;i<=n;i++){
cout<<a[i];
} cout<<endl;
}
}