```cpp
#include<iostream>
#include<bits/stdc++.h>
#include<string>
#include<cstring>
#define fo(a,b,c) for(a=b;a<=c;a++)
using namespace std;
int ans;
int f[2][12]={{-2,-1,-1,-1,0,0,0,0,1,1,1,2},{0,1,0,-1,2,1,-1,-2,1,0,-1,0}};
int q[10005][2];
int head,tail=1;
int n,m;
int cro,ver;
char y;
bool x[105][105]={0};
int i,j;
int ii;
void bfs(int iii=i,int jjj=j)
{
x[iii][jjj]=0;
head=0;
tail=1;
q[1][0]=iii;
q[1][1]=jjj;
ans++;
while(head<tail)
{
head++;
fo(ii,0,11)
{
cro=q[head][0]+f[0][ii];
ver=q[head][1]+f[1][ii];
if(cro>0 && cro<=n && ver>0 && ver<=m)
{
if(x[cro][ver]==1)
{
x[cro][ver]=0;
tail++;
q[tail][0]=cro;
q[tail][1]=ver;
}
}
}
}
}
int main()
{
cin>>n>>m;
memset(x,0,sizeof(x));
fo(i,1,n)
{
fo(j,1,m)
{
scanf("%c",&y);
if(y==35)
{
x[i][j]=1;
}
}
}
fo(i,1,n)
{
fo(j,1,m)
{
if(x[i][j]==1) bfs(i,j);
}
}
cout<<ans;
return 0;
}
```
by 没想好叫啥 @ 2018-02-05 23:12:28