10分答案
#include<bits/stdc++.h>
using namespace std;
int a,b;
char ma[101][101];
bool visit[101][101];
void bfs(int n,int m)
{
visit[n][m]=1;
int x,y,xx,yy,head=0,tail=1,quex[10001],quey[10001],dx[4]={0,0,-1,1},dy[4]={-1,1,0,0};
quex[tail]=n;
quey[tail]=m;
while(head<tail)
{
x=quex[++head];
y=quey[head];
for(int p=0;p<4;p++)
{
xx=x+dx[p];
yy=y+dy[p];
if(xx<0||xx>=a||y<0||y>=b)continue;
visit[xx][yy]=1;
quex[++tail]=xx;
quey[tail]=yy;
}
}
}
int main()
{
int answer=0;
cin>>a>>b;
for(int i=0;i<a;i++)cin>>ma[i];
for(int i=0;i<a;i++)
{
for(int j=0;j<b;j++)
{
if(ma[i][j]!=0&&visit[i][j]==0)
{
answer++;
bfs(i,j);
}
}
}
cout<<answer;
return 0;
}
Orz