大佬求助,#2#10WA
查看原帖
大佬求助,#2#10WA
1028042
Jason_Harry_Song楼主2023/8/20 13:15
#include<bits/stdc++.h>
#define L 550
#define N 550
using namespace std;
int ans=0,l=0,n=0,s=0;
char mp[N][L]={},in[L]={};
bool sn[N][L]={};
inline void dfs(int x,int y);
int main(){
	scanf("%d",&n);
	cin.getline(in+1,10);
	for(int i=1;i<=n;i++){
		cin.getline(mp[i]+1,200);
		int lth=strlen(mp[i]+1);
		l=max(l,lth);
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=l;j++){
			if(mp[i][j]>='a'&&mp[i][j]<='z'){
				mp[i][j]='@';
			}else{
				mp[i][j]='#';
			}
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=l;j++){
			s=0;
			dfs(i,j);
			if(s>0){
				ans++;
			}
		}
	}
	printf("%d\n",ans);
	return 0;
}
inline void dfs(int x,int y){
	if(x<1||y<1||x>n||y>l||mp[x][y]=='#'){
		return;
	}
	if(sn[x][y]==true){
		return;
	}
	sn[x][y]=true;
	s++;
	dfs(x-1,y);
	dfs(x+1,y);
	dfs(x,y-1);
	dfs(x,y+1);
	return;
}
2023/8/20 13:15
加载中...