社区讨论

10pts求助

P1562还是 N 皇后参与者 4已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@lztty7uk
此快照首次捕获于
2024/08/14 20:30
2 年前
此快照最后确认于
2024/08/14 23:02
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
char c1;
int n, ans, a[20][20], b[30], c[30], used[20];
void dfs(int x) {
	if(x == n + 1) {
		ans ++;
		return ;
	}
	for(int i = 1;i <= n;i ++) {
		if(used[i] == 0 && b[i + x] == 0 && b[i - x + n] == 0 && a[x][i] == 0) {
			used[i] = 1;
			b[i + x] = 1;
			c[i - x + n] = 1;
			dfs(x + 1);
			used[i] = 0;
			b[i + x] = 0;
			c[i - x + n] = 0;
		}
	}
}
int main() {
	cin >> n;
	for(int i = 1;i <= n;i ++) {
		for(int j = 1;j <= n;j ++) {
			cin >> c1;
			if(c1 == '.') a[i][j] = 1;
		}
	}
	dfs(1);
	cout << ans;
	return 0; 
}

回复

6 条回复,欢迎继续交流。

正在加载回复...