作业比赛编号 : 1600 - 【C41104】瓢虫班

#include<bits/stdc++.h>
using namespace std;
int n,m,ans=0;
int a[101][101]={};
int dx[4]={0,1,0,-1},
    dy[4]={1,0,-1,0};
char ch;
int in(int x,int y){
    return x>=1&&x<=n&&y>=1&&y<=m;
}

void dfs(int x,int y){
    a[x][y]=0;
    for(int i=0;i<4;i++){
        int tx=x+dx[i];
        int ty=y+dy[i];
        if(in(tx,ty)&&a[tx][ty]==1){
            // a[tx][ty]=0;
            dfs(tx,ty);
        }
    }
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>ch;
            if(ch=='W') a[i][j]=1;
            else a[i][j]=0;
        }
    }
    
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(a[i][j]){
                // a[i][j]=0;
                ans++;
                dfs(i,j);
            }
        }
    }
    cout<<ans;
}



比赛尚未开始或私有,不能查看题目。




返回上一页