作者:
沫羽皓
,
2023-05-26 10:30:32
,
所有人可见
,
阅读 3
#include<iostream>
using namespace std;
const int N=20;
char g[N][N];
int col[N],dg[N * 2],udg[N * 2];
int n;
void dfs(int u)
{
if(u == n)
{
for(int i=0;i<n;++i) puts(g[i]);
puts("");
return;
}
for(int i=0;i<n;++i)
{
if(!col[i] && !dg[i + u] && !udg[i - u + n])
{
g[u][i]='Q';
col[i]=dg[i + u] = udg[i - u +n] =true;
dfs(u+1);
col[i]=dg[i + u] = udg[i - u +n] =false;
g[u][i]='.';
}
}
}
int main(){
cin>>n;
for(int i=0;i<n;++i)
{
for(int j=0;j<n;++j)
{
g[i][j]='.';
}
}
dfs(0);
return 0;
}