思路和上一道一样
//
// main.cpp
// shuati
//
// Created by 布屿 on 2019/4/5.
// Copyright © 2019 布屿. All rights reserved.
//
#include <iostream>
using namespace std;
int kx[9]={0, 1, -1, 0, 0, 1, -1, 1, -1};
int ky[9]={0, 0, 0, 1, -1, 1, -1, -1, 1};
char cell[301][301];
int n,m,s=0;
void search(int x,int y)
{
if(x>n||y>m||x<1||y<1||cell[x][y]=='.')
return;
cell[x][y]='.';
for(int i=1;i<=8;i++)
{
int x0 = x+kx[i];
int y0 = y+ky[i];
search(x0,y0);
}
}
int main(int argc, const char * argv[]) {
int i,j;//n*m的矩阵
cin>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
cin>>cell[i][j];
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
if(cell[i][j]!='.')
{
s++;
search(i,j);
}
}
cout<<s;
return 0;
}