Why?
查看原帖
Why?
1079531
lcycl楼主2024/5/14 23:08
#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[102][102];
void dfs(int x,int y){
    if(x<1||x>n||y<1||y>m) return ;
    if(a[x][y+1]!=0){
        a[x][y+1]=0;
        dfs(x,y+1);
    }
    if(a[x][y-1]!=0){
        a[x][y-1]=0;
        dfs(x,y-1);
    }
    if(a[x+1][y]!=0){
        a[x-1][y]=0;
        dfs(x+1,y);
    }
    if(a[x-1][y]!=0){
        a[x-1][y]=0;
        dfs(x-1,y);
    }
}
char c;
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>c;
            a[i][j]=int(c-'0');
        }
    }
    int sum=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(a[i][j]!=0){
                a[i][j]=0;
                sum++;
                dfs(i,j);
            }
        }
    }
    cout<<sum;
    return 0;
}
```
20分
2024/5/14 23:08
加载中...