题目描述
n皇后
样例
#include <iostream>
using namespace std;
int n, path[10], st[10];
void dfs(int x) {
if (x == n) {
bool iu= true;
for (int i = 0; i < n; i++) {
int m =path[i] ;
for(int j =i+1;j<n;j++){
if(path[j] == m-j+i) iu = false;
if(path[j] == m+j-i) iu = false;
}
}
if (iu){
for (int i =0;i<n;i++){
int m =path[i] ;
for(int h=1;h<m;h++) printf(".");
printf("Q");
for(int u=m;u<n;u++) printf(".");
printf("\n");}
printf("\n");
}
return;
}
for (int i = 1; i <= n; i++) {
if (!st[i]) {
path[x] = i;
st[i] = true;
dfs(x + 1);
st[i] = false;
}
}
}
int main() {
cin >> n;
dfs(0);
return 0;
}
算法1
(暴力枚举) O(n2)
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) O(n2)
blablabla
时间复杂度
参考文献
C++ 代码
blablabla