zoukankan      html  css  js  c++  java
  • 洛谷 P1451 求细胞数量

    洛谷 P1451 求细胞数量

    题目链接

    https://www.luogu.org/problemnew/show/P1451


    题目描述

    一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。(1<=m,n<=100)


    输入输出格式

    输入格式:

    输入:整数m,n(m行,n列的矩阵) 

    输出格式:

    输出:细胞的个数


    思路

    看到很多大佬用搜索,但身为蒟蒻的我只会打暴力,琢磨着就做对了

    一开始我没有输出(连零都没有!),然后我就自闭了,有个同学说要有边界条件的判断,于是打上之后,还是不对,发现只需要判断上下左右四个点,于是我又删了另外四个点的判断

    然后身为蒟蒻的我就傻傻的通过啦!

    虽然时间可能比较多,但是数据水呀!


    代码

    #include<bits/stdc++.h>
    //懒人专用头文件不解释
    using namespace std;
    
    int n,m;
    char a[101][101];//
    int ans=0;
    
    void shensou(int x,int y) {
        //边界条件判断直接返回
        if(x<1||y<1||x>n||y>m) {
            return ;
        }
        //以下是四个点的判断
        //只要不是0都变成0,然后继续搜索
        if(a[x][y+1]!='0') {
            a[x][y+1]='0';
            shensou(x,y+1);
        }
        if(a[x][y-1]!='0') {
            a[x][y-1]='0';
            shensou(x,y-1);
        }
        if(a[x+1][y]!='0') {
            a[x+1][y]='0';
            shensou(x+1,y);
        }
        if(a[x-1][y]!='0') {
            a[x-1][y]='0';
            shensou(x-1,y);
        }
    }
    
    int main() {
        scanf("%d%d",&n,&m);
        for(int i=1; i<=n; i++) {
            for(int j=1; j<=m; j++) {
                cin>>a[i][j];
                //用字符数组输入,因为没有空格
            }
        }
        for(int i=1; i<=n; i++) {
            for(int j=1; j<=m; j++) {
                if(a[i][j]!='0') {
                    a[i][j]=0;//不是0就变成零
                    ans++;
                    shensou(i,j);
                    //目的是将所有这个细胞中的元素清零
                    //这样就可以直接找下一个细胞的某个元素
                }
            }
        }
        printf("%d",ans);//愉快输出答案
        return 0;
    }
  • 相关阅读:
    全栈项目搭建 ------- express
    全栈项目搭建 ------- mysql
    全栈项目搭建 ------- pm2
    基于mysql+node+vue-ssr+webpack全栈项目搭建
    前端技能2020
    项目线上地址汇总2020
    实现一个脚手架
    下载漏洞
    java学习笔记(13-接口、final、多态)
    java学习笔记(12-继承、抽象类)
  • 原文地址:https://www.cnblogs.com/loceaner/p/10719999.html
Copyright © 2011-2022 走看看