超时 求求大佬了 写哭了
查看原帖
超时 求求大佬了 写哭了
857596
zhengduojing楼主2022/11/8 22:26
#include<stdio.h>
int m,n,a[100][100];
int fx[4]={
0,1,0,-1}
;
int ans=0;
int fy[4]={
1,0,-1,0}
;
void dfs(int x,int y){
    a[x][y]=0;
    for(int i=0;i<4;i++){
        int mm=x+fx[i];
        int nn=y+fy[i];
        if((mm>=1)&&(nn>=1)&&(mm<m)&&(nn<n)&&(a[mm][nn]!=0))
        dfs(mm,nn);
    }
}
int main(){
    scanf("%d%d",&n,&m);
    for(int i=0;i<n;i++){
        char c=getchar();
        for(int j=0;i<m;j++)
        scanf("%1d",&a[i][j]);
    }
    for(int i=0;i<n;i++){
        for(int j=0;i<m;j++)
        if(a[i][j]!=0){
            ans++;
            dfs(i,j);
        }
    }
    printf("%d",ans);
}

2022/11/8 22:26
加载中...