社区讨论
求助!!样例:13 没过
P1219[USACO1.5] 八皇后 Checker Challenge参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @luwdz5t1
- 此快照首次捕获于
- 2024/04/12 16:08 2 年前
- 此快照最后确认于
- 2024/04/12 18:59 2 年前
C
#include<stdio.h>
char a[20][20] = {0};
int l[20] = {0};//列
int p[20] = {0};//撇
int q[20] = {0};//捺
int n, k=0;
void dfs(int h) {
int i,j;
if(h == n) {
k ++;
for(i=0;i<n;i++) {
for(j=0;j<n;j++)
if(a[i][j] == 'Q' && k < 4) {
printf("%d ",j+1);
}
}
if(k<4)
printf("\n");
return;
}
for(i = 0;i < n;i ++) {
if(!l[i] && !p[i+h] && !q[i-h+n]) {
l[i] = p[i+h] = q[i-h+n] = 1;
a[h][i] = 'Q';
dfs(1+h);
l[i] = p[i+h] = q[i-h+n] = 0;
a[h][i] = '.';
}
}
}
int main(){
int i, j;
scanf("%d",&n);
for(i = 0;i < n;i ++) {
for(j = 0;j < n;j ++) {
a[i][j] = '.';
}
}
dfs(0);
printf("%d",k);
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...