n皇后问题
作者:
amagi
,
2023-03-12 20:46:48
,
所有人可见
,
阅读 123
#include <iostream>
using namespace std;
int a;
const int N = 1010;
char x[N][N];
bool l[N],d[N],dd[N];
void dfs(int n){
if (n == a) {
for (int i = 0; i < a; i ++ ) puts(x[i]);
puts("");
return ;
}
for (int i = 0;i < a; i ++ ){
if (!l[i] && !d[a + n - i] && !dd[i + n]){
x[n][i] = 'u';
l[i] = true;
dd[i + n] = true;
d[a + n - i] = true;
dfs(n + 1);
l[i] = false;
d[a + n - i] = false;
dd[i + n] = false;
x[n][i] = '.';
}
}
}
int main (){
cin >> a;
for (int i = 0; i < a; i ++ ) {
for (int j = 0; j < a; j ++ ) x[i][j] = '.';
}
dfs(0);
return 0;
}