#include <iostream>
#include <iomanip>
using namespace std;
int a[30],n,cnt=0;
bool col[30],cov1[30],cov2[30];
void print()
{
for(int i=1;i<=n;i++) cout << a[i] << " ";
cout << endl;
}
bool check()
{
}
void dfs(int Lv) // level
{
if(Lv==n+1)
{
cnt++;
if(cnt<=3) print();
return;
} // Lv>n
for(int i=1;i<=n;i++)
{
if(col[i]==false&&cov1[Lv+i]==false&&cov2[Lv-i+15]==false)
{
a[Lv]=i;
col[i]=cov1[Lv+i]=cov2[Lv-i+15]=true;
dfs(Lv+1);
col[i]=cov1[Lv+i]=cov2[Lv-i+15]=false;
}
}
}
int main()
{
cin>>n;
dfs(1);
cout << cnt << endl;
return 0;
}
八皇后问题
最新推荐文章于 2025-06-09 20:47:43 发布