求助,60分,超时
查看原帖
求助,60分,超时
212423
FrozenDream楼主2022/2/10 09:21

rt

#include<bits/stdc++.h>
using namespace std;
int n,a[100],x[100],y[100],z[100],ans;
char p[1005][1005];
void dfs(int sum){
	if(sum>n){
		ans++;
		return;
	} 
	for(int i=1;i<=n;i++){
		if(x[sum+i]==0&&y[i]==0&&z[sum-i+n]==0&&p[sum][i]!='.'){
			a[sum]=i;
			x[sum+i]=1;
			y[i]=1;
			z[sum-i+n]=1;
			dfs(sum+1);	
			x[sum+i]=0;
			y[i]=0;
			z[sum-i+n]=0;
		}
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>p[i][j];
		}
	}
	dfs(1);
	cout<<ans;
} 
2022/2/10 09:21
加载中...