#include <stdio.h>
const int N=1001;
char a[N][N];
bool h[N],dg[N],udg[N];
int n;
void f(int u){
if(u==n){
for(int i=0;i<n;i++)
puts(a[i]);
puts(" ");
return;
}
for(int i=0;i<n;i++)
if(!h[i]&&!dg[u+i]&&!udg[n-u+i]){
a[u][i]='Q';
h[i]=dg[u+i]=udg[n-u+i]=true;
f(u+1);
h[i]=dg[u+i]=udg[n-u+i]=false;
a[u][i]='.';
}
}
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
a[i][j]='.';
f(0);
return 0;
}
n皇后问题
最新推荐文章于 2024-09-07 19:54:46 发布