调了一小时
#include<bits/stdc++.h>
using namespace std;
char s[110][110];
bool v[110][110];
int cnt=0,n,m;
void dfs(int x,int y){
if(x<0||x>=n||y<0||y>=m||s[x][y]!='W'||v[x][y])return;
v[x][y]==true;
dfs(x-1,y-1);
dfs(x-1,y);
dfs(x,y-1);
dfs(x-1,y+1);
dfs(x,y+1);
dfs(x+1,y);
dfs(x+1,y-1);
dfs(x+1,y+1);
return;
}
int main(){
memset(v,false,sizeof(v));
cin>>n>>m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)cin>>s[i][j];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(v[i][j]==false&&s[i][j]=='W'){
dfs(i,j);
cnt++;
}
}
}
cout<<cnt;
return 0;
}