#include<bits/stdc++.h>
#include<math.h>
#include<cmath>
using namespace std;
int fxx[9]={0,-1,-1,-1,0,0,1,1,1};
int fxy[9]={0,-1,0,1,-1,1,-1,0,1};
int n,m,ans;
char a[105][105];
void dfs(int x,int y)
{
int r,c;
a[x][y]='.';
for (int i=1;i<=8;i++)
{
r=x+fxx[i];
c=y+fxy[i];
if (r<1||r>n||c<1||c>m||a[r][c]=='.')
continue;
a[r][c]='.';
dfs(r,c);
}
}
int main()
{
cin>>n>>m;
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
cin>>a[i][j];
ans=0;
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
if (a[i][j]=='W')
{
ans++;
dfs(i,j);
}
cout<<ans;
return 0;
}
P1596 [USACO10OCT] Lake Counting S
最新推荐文章于 2024-07-08 22:12:26 发布