#include<iostream>
#include<queue>
using namespace std;
struct date
{
int x,y;
}pp;
int n,m,g[110][110],bk[510][510],ans=0;
int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
void bfs(int x,int y)
{
queue <date> q;
pp.x=x,pp.y=y;
bk[pp.x][pp.y]=1;
q.push(pp);
while(!q.empty())
{
date now=q.front();
q.pop();
for(int i=0;i<4;i++)
{
pp.x=now.x+dx[i];
pp.y=now.y+dy[i];
if(pp.x>=1&&pp.x<=n&&pp.y>=1&&pp.y<=m&&bk[pp.x][pp.y]==0&&g[pp.x][pp.y]!=0)
{
bk[pp.x][pp.y]=1;
q.push(pp);
}
}
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
char x;cin>>x;
g[i][j]=x-'0';
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if(g[i][j]!=0&&bk[i][j]==0)
{
ans++;
bfs(i,j);
}
}
cout<<ans<<endl;
return 0;
}
洛谷 P1451 求细胞数量
最新推荐文章于 2024-07-10 22:49:54 发布