Flood Fill 1: 池塘计数
作者:
总打瞌睡的天天啊
,
2024-10-20 10:16:38
,
所有人可见
,
阅读 1
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=1010;
char a[N][N];
int res;
int dx[8]={0,1,1,1,0,-1,-1,-1},dy[8]={1,1,0,-1,-1,-1,0,1};
void dfs(int i,int j)
{
a[i][j]='.';
for(int k=0;k<8;k++)
{
if(a[i+dx[k]][j+dy[k]]=='W')
dfs(i+dx[k],j+dy[k]);
}
}
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(a[i][j]=='W')
{
dfs(i,j);
res++;
}
cout<<res<<endl;
return 0;
}