全排列的DFS做法
Posted liyexin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全排列的DFS做法相关的知识,希望对你有一定的参考价值。
#include<iostream> #include<cstring> using namespace std; const int maxn=1e3; int vis[maxn]; int p[maxn]; int n; int t=0; void dfs(int x) { if(x==n+1) { for(int i=1;i<=n;i++) cout<<p[i]<<" "; cout<<endl; return ; } for(int i=1;i<=n;i++) { if(!vis[i]) { vis[i]=1; p[x]=i; dfs(x+1); vis[i]=0; } } } int main() { while(cin>>n) { memset(vis,0,sizeof(vis)); dfs(1); } }
以上是关于全排列的DFS做法的主要内容,如果未能解决你的问题,请参考以下文章