#include<bits/stdc++.h>
using namespace std;
int n,ans,a[20],u[20];
bool ok(int dep)
{
for(int i=1;i<dep;i++)
{
if(abs(dep-i)==abs(a[dep]-a[i]))
return false;
}
return true;
}
void dg(int dep)
{
if(dep>n)
{
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
cout<<endl;
}
else
{
for(int i=1;i<=n;i++)
{
if(u[i]==0)
{
a[dep]=i;
u[i]=i;
if(ok(dep)) dg(dep+1);
u[i]=0;
}
}
}
}
int main()
{
cin>>n;
dg(1);
return 0;
}
n皇后问题
最新推荐文章于 2025-04-25 12:52:41 发布