求助
查看原帖
求助
773444
Tudoudidan楼主2024/11/7 16:09
#include<bits/stdc++.h>
using namespace std;
int m,n,ans,dx[] = {0,0,0,-1,1,1,1,-1,-1},dy[]={0,1,-1,0,0,1,-1,1,-1};
int a[222][222];
char t;
void dfs(int x,int y){
	a[x][y] = 2;
	for(int nx = x,ny = x,i=0;i<=8;i++,nx = x+dx[i],ny = y+dy[i]){
		if(a[nx][ny]==1)dfs(nx,ny);
	}
}
int main(){
	cin>>m>>n;
	for(int i = 1;i<=m;i++)for(int j =1;j<=n;j++){
		cin>>t;
		a[i][j] = (t=='W')?1:2;
	}
	for(int i = 1;i<=m;i++)for(int j = 1;j<=n;j++){
		if(a[i][j]==1){
			dfs(i,j);
			ans++;
		}
	}
	cout<<ans;
} 
2024/11/7 16:09
加载中...