求助,10分
查看原帖
求助,10分
219661
⚡zhangjingcan⚡楼主2020/7/20 21:55
#include <bits/stdc++.h>
using namespace std;
int n,m,ans;
char ch[1002][1002];
bool flag[1002][1002];
int dx[9]={0,-1,-1,-1,0,0,1,1,1};
int dy[9]={0,-1,0,1,-1,1,-1,0,1};
void dfs(int x,int y){
    flag[x][y]=true;
    for(int i=0;i<8;i++){
        int px=x+dx[i];
        int py=y+dy[i];
        if(px>=1&&px<=n&&py>=1&&py<=m&&!flag[px][py])dfs(px,py);
    }
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>ch[i][j];
            if(ch[i][j]=='W')flag[i][j]=true;
            else flag[i][j]=false;
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(!flag[i][j])dfs(i,j),ans++;
        }
    }
    cout<<ans<<"\n";
    return 0;
}
2020/7/20 21:55
加载中...