#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<iomanip>
using namespace std;
int n,m,s=0,map[105][105],t,h,dl[1000][2];
int dx[12]={0,0,0,0,1,1,1,-2,-1,-1,-1,2},
dy[12]={2,1,-1,-2,1,-1,0,0,0,-1,1,0};
void bfs(int x,int y)
{
s++;h=0;t=1;
dl[1][0]=x;
dl[1][1]=y;
while(h<t)
{
h++;
for(int i=0;i<12;i++)
{
if(dl[h][0]+dx[i]>=0&&dl[h][0]+dx[i]<m&&dl[h][1]+dy[i]>=0&&dl[h][1]+dy[i]<n&&map[dl[h][0]+dx[i]][dy[i]+dl[h][1]]==1)
{
t++;
dl[t][0]=dl[h][0]+dx[i];
dl[t][1]=dl[h][1]+dy[i];
map[dl[h][0]+dx[i]][dl[h][1]+dy[i]]=0;
}
}
}
}
int main()
{
char c[104];
scanf("%d%d",&m,&n);
for(int i=0;i<m;i++)
{
scanf("%s",c);
for(int j=0;j<n;j++)
if(c[j]=='#') map[i][j]=1;
}
for(int i=0;i<=m;i++)
for(int j=0;j<=n;j++)
if(map[i][j]==1) bfs(i,j);
printf("%d",s);
while(1);
}
回复 更多评论