• 找细胞(题解)


    题目描述

    一矩形阵列由数字 00 到 99 组成,数字 11 到 99 代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。

    输入格式

    第一行两个整数代表矩阵大小 nn 和 mm。

    接下来 nn 行,每行一个长度为 mm 的只含字符 0 到 9 的字符串,代表这个 n imes mn×m 的矩阵。

    输出格式

    一行一个整数代表细胞个数。

    输入输出样例

    输入 #1
    4 10
    0234500067
    1034560500
    2045600671
    0000000089
    
    输出 #1
    4

    说明/提示

    数据规模与约定

    对于 100\%100% 的数据,保证 1 le n,m le 1001n,m100。

    #include <iostream>

    #include <cstdio>

    using namespace std;

    void dfs(int x,int y);

    int n,m;

    char a[105][105];

    int dx[4]={-1,0,1,0};//方向

    int dy[4]={0,1,0,-1};//方向

    int ans;

    void dfs(int x,int y)

    {

        if(a[x][y]-'0'==0) return;

        else{

            if(x>=0 && x<n && y>=0 && y<m)

            {

                a[x][y]='0';

                for(int i=0;i<4;i++)

                    dfs(x+dx[i],y+dy[i]);

            }

        }

        return;//越界,则不满足,return。这和其他代码把越界结束的条件放在之前是一样的(放在之前这里就没有return了)

    }

    int main()

    {

        scanf("%d%d",&n,&m);

        for(int i=0;i<n;i++)

        {

            cin>>a[i];

        }

        for(int i=0;i<n;i++)

        {

            for(int j=0;j<m;j++)

            {

                if(a[i][j]-'0'!=0)

                {

                    dfs(i,j);

                    ans++;

                }

            }

        }

        cout<<ans;

        return 0;

    }

    这篇文章,是又一个故事的结束...
    lazy's story is continuing.
  • 相关阅读:
    vue--vue-resource实现 get, post, jsonp请求
    vue--生命周期演示
    vue--自定义指令
    vue--键盘修饰符以及自定义键盘修饰符
    vue--过滤器(私有,全局)
    mysql5.7二进制包安装方式
    搭建GIT服务器
    服务器集群,及服务器高并发调优备忘
    iptables 配置问题,以及centos firewall 配置
    nginx 编译安装
  • 原文地址:https://www.cnblogs.com/Hello-world-hello-lazy/p/14018562.html
Copyright © 2020-2023  润新知