DFS入门级(模板)_浮生未歇-CSDN博客_dfs入门
题目:
代码:
#include <iostream>
using namespace std;
const int N = 10;
int n;
int path[N];
bool st[N];
void dfs(int u)
{
if (u == n)//说明当前位置已填满
{
for (int i = 0; i < n; i ++ )cout<<path[i]<<" ";
puts("");
return;
}
for (int i = 1; i <= n; i ++ ) //当前位置没有被填满
if (!st[i])
{
path[u] = i ; //把i放到当前位置上
st[i]=true; //记录i已被用过
dfs(u+1);//递归到下一层
path[u]=0; //恢复(也可省略)
st[i]=false;
}
}
int main()
{
cin>>n;;
dfs(0);
return 0;
}