欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 综合教程 >内容正文

综合教程

计蒜客 —— 最好的草

发布时间:2024/6/21 综合教程 47 生活家
生活随笔 收集整理的这篇文章主要介绍了 计蒜客 —— 最好的草 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

题目地址:

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矩阵,方便运算,之后直接硬算递归的话会比较麻烦,所以直接:

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

总结

以上是生活随笔为你收集整理的计蒜客 —— 最好的草的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。