#include <iostream>
using namespace std;
const int N = 10;
int n;
char ch[N][N];
bool col[N], dg[N], udg[N];
void dfs(int u) {
if(u == n) {
for(int i = 0; i < n ; i++) {
puts(ch[i]);
}
puts("");
}
for(int i = 0; i <n ; i++) {
if(!col[i] && !dg[u - i + n] && !udg[i + u]) {
ch[u][i] = 'Q';
col[i] = dg[u - i + n] = udg[i + u] = true;
dfs(u + 1);
col[i] = dg[u - i + n] = udg[i + u] = false;
ch[u][i] = '.';
}
}
}
int main() {
cin>>n;
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
ch[i][j] = '.';
}
}
dfs(0);
return 0;
}
算法1
(暴力枚举) O(n2)
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) O(n2)
blablabla
时间复杂度
参考文献
C++ 代码
blablabla