#include <iostream>
using namespace std;
const int MAXN=100+5;
int n,m,cnt=0;
char s[MAXN][MAXN];
void dfs(int x,int y){
s[x][y]='.';
for(int x0=-1;x0<=1;++x0){
for(int y0=-1;y0<=1;++y0){
int tx=x+x0;
int ty=y+y0;
if(tx<0||tx>=n||ty<0||ty>=m) continue;
if(s[tx][ty]=='W') dfs(tx,ty);
}
}
}
int main(){
cin>>n>>m;
// for(int i=0;i<n;i++){
// getchar();
// for(int j=0;j<m;j++){
// scanf("%c",&s[i][j]);
// }
// }
for(int i=0;i<n;i++)
scanf("%s",s[i]); //一整行输入
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(s[i][j]=='W') {
dfs(i,j);
cnt++;
}
}
}
cout<<cnt<<endl;
return 0;
}
湖计数Lake Counting DFS
最新推荐文章于 2024-04-07 10:22:37 发布