zoukankan      html  css  js  c++  java
  • 计蒜客 —— 最好的草

    题目地址:

    https://nanti.jisuanke.com/t/T1141

    奶牛Bessie 计划好好享受柔软的春季新草。新草分布在 R行 C列的牧场里。它想计算一下牧场中的草丛数量。
    在牧场地图中,每个草丛要么是单个'#',要么是有公共边的相邻两个'#'。给定牧场地图,计算有多少个草丛。
    例如,考虑如下 5 行 6 列的牧场地图

     

    这个牧场有 5 个草丛:一个在第一行,一个在第二列横跨了二、三行,一个在第三行,一个在第四行横跨了四、五列,最后一个在第五行。

    输入格式

    第一行包含两个整数 R 和 C,中间用单个空格隔开。
    接下来 R 行,每行 C 个字符,描述牧场地图。字符只有'#'或'.'两种。

    输出格式

    输出一个整数,表示草丛数。

    代码:

    #include<stdio.h>
    int a[100][100];
    int main(){
        int x,y;
        scanf("%d %d",&x,&y);getchar();
        for(int i = 0; i < x;i++){
            for(int j = 0;j < y;j++){
                char p = getchar();
                if(p == '.')
                    a[i][j] = 0;
                else
                    a[i][j] = 1;
            }
            getchar();
        }
        int sum = 0;
        int jq = 0;
        for(int i = 0; i < x;i++){
            for(int j = 0;j < y;j++){
                if(a[i][j] == 1){
                    sum++;
                    if(a[i][j+1] == 1 || a[i+1][j] == 1 ){
                        jq++;
                    }
                }
            }
        }
        printf("%d",sum - jq);
        return 0;
    }

    题目难度并不大,就是思路感觉有点意思,首先将字符阵列转化成01矩阵,方便运算,之后直接硬算递归的话会比较麻烦,所以直接:

    # 的总数 -  每个 # 右边和下面有相邻的 # 的个数  =  草丛数

  • 相关阅读:
    转载(腾讯云社区)——详解django-apscheduler的使用方法
    pipenv——python包管理工具
    xx系统需求进度02
    xx系统需求进度01
    Hbase简介
    第七周总结
    《软件需求十步走》阅读笔记一
    第六周总结
    HDFS
    金字塔表达方法
  • 原文地址:https://www.cnblogs.com/expedition/p/11777580.html
Copyright © 2011-2022 走看看