#include <iostream>
using namespace std;
const int N = 15;
int g[N];
int n;
int st[N], md[N * 2], sd[N * 2];
int cnt, ans;
void print() {
if(cnt < 3) {
for(int i = 1; i <= n; i ++ ) {
cout << g[i] << ' ';
}
cout << endl;
}
cnt ++;
}
void dfs(int u) {
if(u > n) {
ans ++;
print();
for(int i = 1; i <= n; i ++ ) {
}
return;
}
for(int i = 1; i <= n; i ++ ) {
if(!st[i] && !md[i + u] && !sd[i - u + n]) {
st[i] = md[i + u] = sd[i - u + n] = 1;
g[u] = i;
dfs(u + 1);
st[i] = md[i + u] = sd[i - u + n] = 0;
}
}
}
int main() {
cin >> n;
dfs(1);
cout << ans << endl;
return 0;
}
八皇后dfs
最新推荐文章于 2024-05-30 16:17:47 发布