求助(玄关)
查看原帖
求助(玄关)
537655
XmosCao楼主2024/4/7 17:51

#include<bits/stdc++.h>
#define                                                                     kkksc03         x1>0&&x1<=n&&y1>0&&y1<=m&&b[x1][y1]==0&&a[x1][y1]=='.'
#define definedefinedefinedefinedefinedefinedefinedefinedefinedefinedefinedefinedefinedefine  using namespace std;
definedefinedefinedefinedefinedefinedefinedefinedefinedefinedefinedefinedefinedefine
int n,m,b[105][105],sum;
char a[105][105];
int fxx[9]={0,-1,-1,-1,0,0,1,1,1};
int fxy[9]={0,-1,0,1,-1,1,-1,0,1};
void dfs(int x,int y)
{
    int x1,y1,num=1;
    for(int i=1;i<=8;i++)
    {
        x1=x+fxx[i];
        y1=y+fxy[i];
        if(kkksc03)
        {
            b[x1][y1]=1;
            num=0;
            dfs(x1,y1);
        }
    }
    if(num==0)
    {
    return;
    }
    sum++;
    return;
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            cin>>a[i][j];
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            if(a[i][j]=='.'&&b[i][j]==0)
            {
                dfs(i,j);
            }
        }
    }
    cout<<sum;
    return 0;
}
2024/4/7 17:51
加载中...