题目描述
blablabla
样例
#include <iostream>
using namespace std;
const int N=20;
int n;
char g[N][N];//char类型
bool col[N],dg[N],udg[N];
void dfs(int u){
if(u==n){
for(int i=0;i<n;i++){
cout<<g[i]<<endl;
}
cout<<endl;
return;
}
int x=u;
for(int y=0;y<n;y++){
if(!col[y]&&!dg[y+x]&&!udg[y-x+n]){
g[x][y]='Q';
col[y]=dg[y+x]=udg[y-x+n]=1;
dfs(x+1);
g[x][y]='.';
col[y]=dg[y+x]=udg[y-x+n]=0;
}
}
}
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;
}