社区讨论
60分
P1219[USACO1.5] 八皇后 Checker Challenge参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lobz53vl
- 此快照首次捕获于
- 2023/10/30 05:19 2 年前
- 此快照最后确认于
- 2023/11/04 10:36 2 年前
CPP
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int a[22], b[22], c[22], d[22], cnt=0, n;
void dfs(int i) { //给第i层放皇后
if(i==n+1) {
cnt++;
if(cnt<=3)
{
for(int i=1; i<=n; i++) {
cout << a[i] <<' ';
}
cout << endl;
}
return;
}
for(int j=1; j<=n; j++) {
if(!b[j]&&!c[i-j+n]&&!d[i+j]) {
a[i] = j;
b[j] = true;
c[i-j+n] = true;
d[i+j] = true;
dfs(i+1);
b[j] = false;
c[i-j+n] = false;
d[i+j] = false;
}
}
}
int main() {
cin >> n;
dfs(1);
cout << cnt;
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...