请大佬看看我哪里错了
查看原帖
请大佬看看我哪里错了
953664
chenqile楼主2024/1/9 16:27

代码如下:

#include <bits/stdc++.h>
using namespace std;
int n, m, d[4][2] = {1, 0, 0, 1, -1, 0, 0, -1}, sum = 0;
char a[102][102];
void dfs(int x, int y){
    a[x][y] = 48;
    for (int i = 0; i < 4; i++){
        int nx = x + d[i][0], ny = y + d[i][1];
        if (a[nx][ny] != 48) dfs(nx, ny);
    }
    return;
}
int main(){
    cin>>n>>m;
    for(int i=0;i<n;i++)for(int j=0;j<m;j++)scanf(" %d", &a[i][j]);
    for(int i=0;i<n;i++)for(int j=0;j<m;j++)if(a[i][j]!=48)sum++,dfs(i,j);
    cout<<sum;
    return 0;
}
2024/1/9 16:27
加载中...