当前位置 博文首页 > u012938183的博客:ybt1329:【例8.2】细胞

    u012938183的博客:ybt1329:【例8.2】细胞

    作者:[db:作者] 时间:2021-06-13 12:14

    #include<iostream>
    #include<cstdio>
    #include<map>
    #include<queue>
    using namespace std;
    bool vis[1010][1010];
    char a[1010][1010];
    int dx[]={1,0,-1,0};
    int dy[]={0,1,0,-1};
    int n,m;
    struct node { int x, y; } ;
    void bfs(int x,int y){
    	queue<node>q;
    	q.push({x,y});
    	vis[x][y]=true;
    	while(!q.empty()){
    		node f=q.front();
    		q.pop();
    		for(int i=0;i<4;i++){
    			int x=f.x+dx[i];
    			int y=f.y+dy[i];
    			if(x<=0|x>n||y<=0||y>m){
    				continue;
    			}
    			if(a[x][y]=='0'){
    				continue;
    			}
    			if(vis[x][y]==true){
    				continue;
    			}
    			vis[x][y]=true;
    			q.push({x,y});
    		}
    	}
    }
    int main(){
        cin>>n>>m;
        for(int i=1;i<=n;i++){
        	scanf("%s",a[i]+1);
    	}
    	int cnt=0;
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=m;j++){
    			if(!vis[i][j]&&a[i][j]!='0'){
    				cnt++;
    				bfs(i,j);
    			}
    		}
    	}
    	printf("%d\n",cnt);
        return 0;
    }
    
    下一篇:没有了