求助
查看原帖
求助
1394532
_FJ_楼主2024/7/26 00:17

调了一小时

#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;
}
2024/7/26 00:17
加载中...