广搜全WA求助
查看原帖
广搜全WA求助
823773
_sh1kong_楼主2022/12/4 11:13

悬赏关注 code:

#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
int r,c,cnt;
bool a[510][510];
int pyx[5]={0,0,1,-1},
	pyy[5]={1,-1,0,0};
struct node{
	int x,y;
};
queue <node> q;
void bfs(int x,int y)
{
	node k;
	k.x=x;k.y=y;
	q.push(k);
	while(!q.empty())
	{
		node s=q.front();
		q.pop();
		for(int i=0;i<4;i++)
		{
			int xx=s.x+pyx[i];
			int yy=s.y+pyy[i];
			if(xx>=1&&xx<=r&&yy>=1&&yy<=c&&!a[xx][yy])
			{
				a[xx][yy]=1;
				node p;
				p.x=xx;p.y=yy;
				q.push(p);
			}
		}
	}
	return ;
}
int main()
{
	memset(a,0,sizeof(a));
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin>>r>>c;
	for(int i=1;i<=r;i++)
	{
		for(int j=1;j<=c;j++)
		{
			char ch;
			cin>>ch;
			if(ch=='*') a[i][j]=1;
			else a[i][j]=0;
		}
	}
	for(int i=1;i<=r;i++)
	{
		for(int j=1;j<=c;j++)
		{
			if(!a[i][j])
			{
				bfs(i,j);
			}
		}
	}
	for(int i=1;i<=r;i++)
	{
		for(int j=1;j<=c;j++)
		{
			if(!a[i][j]) cnt++;
		}
	}
	cout<<cnt;
} 
2022/12/4 11:13
加载中...