AcWing 1097. 池塘计数
原题链接
简单
作者:
沉心方可沉淀
,
2021-05-04 16:22:37
,
所有人可见
,
阅读 448
C++代码
#include<bits/stdc++.h>
using namespace std;
int n,m;
char a[1005][1005];
int res=0;
void dfs(int x,int y)
{
if(a[x-1][y-1]=='W')
{
a[x-1][y-1]='.';
dfs(x-1,y-1);
}
if(a[x-1][y]=='W')
{
a[x-1][y]='.';
dfs(x-1,y);
}
if(a[x-1][y+1]=='W')
{
a[x-1][y+1]='.';
dfs(x-1,y+1);
}
if(a[x][y-1]=='W')
{
a[x][y-1]='.';
dfs(x,y-1);
}
if(a[x][y+1]=='W')
{
a[x][y+1]='.';
dfs(x,y+1);
}
if(a[x+1][y-1]=='W')
{
a[x+1][y-1]='.';
dfs(x+1,y-1);
}
if(a[x+1][y]=='W')
{
a[x+1][y]='.';
dfs(x+1,y);
}
if(a[x+1][y+1]=='W')
{
a[x+1][y+1]='.';
dfs(x+1,y+1);
}
}
int main()
{
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;
}
//纯手