DFS
AcWing 842. 排列数字
代码
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
const int N=10;
int path[N];
bool st[N];
int n;
void dfs(int x){
if(x>n) return ;
for(int i=1;i<=n;i++){
if(st[i]==1) continue;
st[i]=1;
path[x]=i;
dfs(x+1);
st[i]=0;
}
if(x==n){
for(int i=1;i<=n;i++)
if(i==n)cout<<path[i]<<endl;
else cout<<path[i]<<" ";
}
}
int main(){
cin>>n;
dfs(1);
return 0;
}