为什么无法输入
查看原帖
为什么无法输入
539712
123uuu楼主2023/12/15 20:23
#include<bits/stdc++.h>
using namespace std;
int i, j, d[10], n, ans = 0;
char map[20][20];
bool check(int h, int dep){
	int i;
	for (i = 1; i < h; ++i){
		if (map[i][dep] == '.')return 0;
		if (d[i] == dep)return 0;
		if (dep - i > 0 && d[h - i] == dep - i)return 0;
		if (dep + i <= n && d[h - i] == dep + i)return 0; 
	} 
	return 1;
}
void dfs(int x){
	if (x == n + 1){
		ans++;
		return;
	}
	for (int i = 1; i <= n; ++i){
		if (check(x, i)){
			d[x] = i;
			dfs(x + 1);
		}
	}
}
int main(){
	cin >> n;
	for (int i = 1; i <= n; ++i){
		for (int j = 1; j <= n; ++j){
			cin >> map[i][j];
		}
	}
	dfs(1);
	cout << ans;
return 0;
} 
2023/12/15 20:23
加载中...