入oi后的第一份题解
简单的dfs(虽然以前我也不会…)
- c++
一个华丽的分割线
#include<bits/stdc++.h>//万能头...
using namespace std;
int n,a[10001];//一维数组尽量开大一点,不然可能会玄学
bool b[10001];
void dfs(int k)//纯板子dfs.不多解释了.
{
for(int i=1;i<=n;i++)
if(!b[i])
{
b[i]=1;
a[k]=i;
if(k==n)
{
for(int i=1;i<=n;i++)
cout<<setw(5)<<a[i];
cout<<endl;
}
else dfs(k+1);
b[i]=0;//回溯
}
}
int main()
{
scanf("%d",&n);
dfs(1);//从1开始搜
return 0;//一个好习惯
}
不懂就去翻教科书吧…
完美结束…