八皇后【洛谷】
程序员文章站
2022-06-08 17:56:39
...
#include<bits/stdc++.h>
using namespace std;
int a[1000],b[1000],c[1000],d[1000],n,s;
void print()
{
s++;
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
cout<<endl;
return ;
}
void dfs(int i)
{
for(int j=1;j<=n;j++)
if(!b[j]&&!c[i+j]&&!d[i-j+n])
{
a[i]=j;b[j]=c[i+j]=d[i-j+n]=1;
if(i==n) print();
else dfs(i+1);
b[j]=c[i+j]=d[i-j+n]=0;
}
}
int main()
{
cin>>n;
dfs(1);
cout<<s;
}