链接:https://ac.nowcoder.com/acm/contest/26276/A 来源:牛客网 由于最近的降雨,水在农民约翰的田地里的不同地方聚集起来,这片田地由一个长方形表示,长方形为N x M(1<=N<=100;1<=M<=100)正方形。每个广场都有水(“W”)或旱地(“W”)。农夫约翰想知道他的田地里形成了多少池塘。池塘是一组相互连接的广场,其中有水,其中一个广场被视为与其所有八个邻居相邻。 给农民约翰的田地一张图表,确定他有多少池塘。 输入描述: 第1行:两个空格分隔的整数:N和M*第2行。。每行N+1:M个字符,代表一排农民约翰的田地。每个字符都是“W”或“.”。字符之间没有空格。 输出描述: 第1行:农夫约翰田里池塘的数量。

#include <iostream>

#include <stdio.h>
void fun(int a,int b,int m,int n);
char ch[120][120];
int main()
{
    int s=0,m,n,i,j;
    scanf("%d %d",&m,&n);

    for(i=0;i<m;i++)
    {
        scanf("%s",ch[i]);
    }
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
        {
            if(ch[i][j]=='W')
            {
                fun(i,j,m,n);
                s++;
            }
        }

    }
    printf("%d",s);
}
void fun(int a,int b,int m,int n)
{
    ch[a][b]='.';
    int i,j;
    for(i=-1;i<=1;i++)
    {
        for(j=-1;j<=1;j++)
        {
            if(a+i>=0&&b+j>=0&&ch[a+i][b+j]=='W'&&a+i<m&&b+j<n)
            {
                fun(a+i,b+j,m,n);
            }

        }
    }

}




#include <iostream>
using namespace std;
#include <string>
#include <algorithm>
#include <bits/stdc++.h>
char ch[100][110];
int a[6];
int n,m;
inline void dfs(int x,int y)//
{
    ch[x][y]='.';
    for(int x1=-1;x1<=1;x1++)
        for(int y1=-1;y1<=1;y1++)
        {
           int x2=x+x1,y2=y+y1;
           if(x2>=0&&x2<n&&y2>=0&&y2<m&&ch[x2][y2]=='W') dfs(x2,y2);
        }
}
inline void solve()
{
    int res=0;
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            if(ch[i][j]=='W') 
            {
                dfs(i,j);
                    res++;
            }
    cout<<res;
}
int main()
{
    cin>>n>>m;
    for(int i=0;i<n;i++) cin>>ch[i];
    solve();
    return 0;
}

print('Hello world!')