80分廣搜求助
查看原帖
80分廣搜求助
653100
_Silica_楼主2023/8/16 09:10
#include<bits/stdc++.h>
using namespace std;
int x,y,cnt;
int ux[8]={-1,-1,0,1,1,1,0,-1};
int uy[8]={0,1,1,1,0,-1,-1,-1};
char c[111][111];
void bfs(int p,int q)
{
	queue<pair<int,int> >e;
	e.push(make_pair(p,q));
	while(!e.empty())
	{
		p=e.front().first;
		q=e.front().second;
		e.pop();
		c[p][q]='.';
		for(int k=0;k<8;++k)
		{
			if(p+ux[k]<=x&&q+uy[k]<=y&&c[p+ux[k]][q+uy[k]]=='W')
			{
				e.push(make_pair(p+ux[k],q+uy[k]));
			}
		}
	}
	++cnt;
}
int main()
{
	cnt=0;
	scanf("%d%d",&x,&y);
	for(int i=1;i<=x;++i)
	{
		scanf("\n");
		for(int j=1;j<=y;++j)
		{
			scanf("%c",&c[i][j]);
			
		}
	}
	for(int i=1;i<=x;++i)
	{
		for(int j=1;j<=y;++j)
		{
			if(c[i][j]=='W')
			{
				bfs(i,j);
			}
		}
	}
	printf("%d",cnt);
	return 0;
}

2023/8/16 09:10
加载中...