首页 > 其他 > 详细

1329 【例8.2】细胞

时间:2020-10-04 21:44:25      阅读:101      评论:0      收藏:0      [点我收藏+]
#include<bits/stdc++.h>
using namespace std;
int n,m;//行列 
char mp[70][70];//地图 
int next[4][2]={{-1,0},{1,0},{0,-1},{0,1}};//方向 
int ans=0;//答案 

void dfs(int x,int y){
    for(int i=0;i<4;i++){
        int nx=x+next[i][0];
        int ny=y+next[i][1];
        
        if(nx>=0 && nx<n && ny>=0 && ny<m && mp[nx][ny]!=0){
            mp[nx][ny]=0;
            dfs(nx,ny);
        }
    }
}
int main(){
    cin>>n>>m;
    getchar();//过滤换行符 
    
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>mp[i][j];
        }
        getchar();//过滤换行符 
    }
    
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            if(mp[i][j]!=0){//当不为‘0’时开始遍历 
                ans++; 
                dfs(i,j);//从当前位置开始遍历 
            }
        }
    }
    cout<<ans<<endl;
    return 0;
}

 

1329 【例8.2】细胞

原文:https://www.cnblogs.com/qwn34/p/13768417.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!