大佬为什么不加{0,0}AC不了啊 求助!!
查看原帖
大佬为什么不加{0,0}AC不了啊 求助!!
1092335
aaabread123楼主2024/4/12 20:30
//判断连通块
#include <bits/stdc++.h>
using namespace std;
#define N 105
int n,m;
char a[N][N];
int ans;
int run[9][2]={{0,0},{1,0},{-1,0},{0,1},{0,-1},{1,1},{1,-1},{-1,1},{-1,-1}};//为什么不加{0,0}就不对
void dfs(int x,int y)
{
    a[x][y]='.';
    for(int i=1;i<=9;i++)
    {
        int newx = x+run[i][0];
        int newy = y+run[i][1];
        if(newx<1 || newx>n || newy<1 || newy>m || a[newx][newy]=='.' ) continue;
        dfs(newx,newy);
    }
    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]=='W')
            {
                ans++;
                dfs(i,j);
            }

        }
    }

    cout << ans;
    return 0;

}
2024/4/12 20:30
加载中...