欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Lake Counting

程序员文章站 2022-07-14 20:58:09
...

Lake Counting

//#include <bits/stdc++.h>
#include <iostream>
#include <cstdio>
using namespace std;
char a[101][101];
int sum,n,m;
int dx[8]={0,0,1,-1,1,-1,1,-1},dy[8]={1,-1,0,0,1,-1,-1,1};
void dfs(int x,int y){
    a[x][y]='.';
    for(int i=0;i<8;i++){
        int nx=x+dx[i],ny=y+dy[i];
        if(nx>=0&&nx<n&&ny>=0&&ny<m&&a[nx][ny]=='W')
            dfs(nx,ny);
    }
    return;
}

int main(){
    freopen("data","r",stdin);
    scanf("%d%d",&n,&m);
    for(int i=0;i<n;i++)
        scanf("%s",a[i]);
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++){
            if(a[i][j]=='W')
            {
                dfs(i,j);
                sum++;
            }
        }
    printf("%d\n",sum);
    return 0;
}

转载于:https://www.jianshu.com/p/8b7c30b46bd2