#include<bits/stdc++.h>
using namespace std;
const int maxn=1e3+5;
int n,f[10],vis[10];
void dfs(int step){
if(step==n+1){
for(int i=1;i<=n;i++)
printf("%5d",f[i]);
cout<<endl;
return ;
}
for(int i=1;i<=n;i++){
if(!vis[i]) {
vis[i]=1;f[step]=i;
dfs(step+1);//不能用自增!
vis[i]=0;
}
}
return ;
}
int main(){
cin>>n;
memset(vis,0,sizeof(vis));
dfs(1);//初始为1
}
洛谷P1706
最新推荐文章于 2022-09-25 12:44:47 发布