为什么输入的时候没输完就运行出答案了。。
查看原帖
为什么输入的时候没输完就运行出答案了。。
1412080
liuyichen2024楼主2024/8/10 17:17
#include<bits/stdc++.h>
using namespace std;
char tu;
int n,ans;
bool lie[15],xie1[28],xie2[28],st[15][15];
void dfs(int hang){
	if(hang==n+1){
		ans++;
		return;
	}
	for(int i=1;i<=n;i++){
		if(!lie[i]&&!xie1[i+hang]&&!xie2[i-hang+n]&&!st[hang][i]){
			
			lie[i]=1;xie1[i+hang]=1;xie2[i-hang+n]=1;
			dfs(hang+1);
			lie[i]=0;xie1[i+hang]=0;xie2[i-hang+n]=0;
		}
	}
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			scanf("%c",&tu);
			if(tu=='.')st[i][j]=1;
		}
	}
	dfs(1);
	printf("%d",ans);
}
2024/8/10 17:17
加载中...