AcWing 843. n-皇后问题
原题链接
中等
作者:
RP
,
2021-04-08 17:21:43
,
所有人可见
,
阅读 267
n-皇后问题 C++ 代码
#include <bits/stdc++.h>
using namespace std;
const int N = 10;
int res[N];
bool col[N],dg[2*N],udg[2*N];
int n;
void dfs(int x){
if(x>n){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(j!=res[i]){
cout<<".";
}else{
cout<<"Q";
}
}
puts("");
}
puts("");
}
for(int y=1;y<=n;y++){
if(!col[y]&&!dg[y+x]&&!udg[y-x+n]){
res[x] = y;
col[y] = dg[y+x] = udg[y-x+n] = true;
dfs(x+1);
col[y] = dg[y+x] = udg[y-x+n] = false;
res[x] = 0;
}
}
}
int main(){
cin>>n;
dfs(1);
}