ans

x-zhuhanyu 2022-05-22 18:39:05 15 返回题目

#include<bits/stdc++.h>
using namespace std;
int cnt=0,n,m;

char a[100+10][100+10];
int dx[8]={0,0,-1,1,-1,1,-1,1};
int dy[8]={-1,1,0,0,-1,1,1,-1};
struct node{
	int x,y;
};
queue<node>q; 
int bfs(int x,int y){
	q.push(node{x,y});
	a[x][y]=='.';
	while(!q.empty()){
		node now=q.front();
		q.pop();
		for(int i=0;i<8;i++){
			int nx=now.x+dx[i];
			int ny=now.y+dy[i];
			if(a[nx][ny]=='.') continue;
			q.push(node{nx,ny});
			a[nx][ny]='.';
		}
	}
}
int main() {
 cin>>n>>m;
memset(a,'.',sizeof(a));
for(int i=1;i<=n;i++)
 for(int j=1;j<=m;j++)
  cin>>a[i][j];
  for(int i=1;i<=n;i++)
   for(int j=1;j<=m;j++)
     if(a[i][j]=='W'){
     	cnt++;
     	bfs(i,j);
	 }
  cout<<cnt;
 return 0; 
}
{{ vote && vote.total.up }}