问题描述:

小明用积木搭了一个城堡。
        为了方便,小明在搭的时候用的是一样大小的正方体积本,搭在了一个n行m列的方格图上,每个积木正好占据方格图的一个小方格。
        当然,小明的城堡并不是平面的,而是立体的。小明可以将积木垒在别的积木上面。当一个方格上的积木垒得比较高时,就是一个高塔,当一个方格上没有积木时,就是—块平地。
        小明的城堡可以用每个方格上垒的积木层数来表示。例如,下面就表示一个城堡。

        9   3   3    1

        3   3    3   0

        0   0    0   0

        这个城堡南面和东面都有空地,西北面有一个大房子,在?北角还有一个高塔,东北角有一个车库。
        现在,格格巫要来破坏小明的城堡,他施了魔法水淹小明拍城堡。
        如果水的高度为1,则紧贴地面的那些积木要被水淹,在上面的例子中,有7块积木要被水淹。
        如果水的高度为2,则更多积木要被水淹,在上面的例子中,有13块积木要被水淹。
        给定小明的城堡图,请问,水的高度依次为1,2,3,....,H时,有多少块积木要被水淹。

输入格式:

        输入的第一行包含两个整数n, m。
        接下来n行,每行m个整数,表示小明的城堡中每个位置积木的层数。
        接下来包含一个整数H,表示水高度的上限。

输出格式:

        输出H行,每行—个整数。第i的整数表示水的高度为i时被水淹的积木数量

样例输入:

  3 4

        9   3   3   1

        3    3  3  0

        0    0  0   0

        10

样例输出:

        7

        13

        19

        20

        21

        22

        23

        24

        25

        25

评测用例规模与约定

        对于40%的评测用例,1<= n, m <= 100,1 <= H<=100,积木层数不超过100;
        对于70%的评测用例,1<= n, m <= 1000,1 <= H<=1000,积木层数不超过1000;


C语言解决:        

        给定小明的城堡图,请问,水的高度依次为1,2,3,....,H时,有多少块积木要被水淹。

//给定小明的城堡图,请问,水的高度依次为1,2,3,....,H时,有多少块积木要被水淹。
#include <stdio.h>int main(){int i,j,p,n,m,h,flag=0,a[100][100];scanf("%d %d",&n,&m);//第一行输入for(i=0;i<n;i++){for(j=0;j<m;j++){scanf("%d",&a[i][j]);//输入城堡 }}scanf("%d",&h);//水高度的上限度for(p=1;p<=h;p++){for(i=0;i<n;i++){for(j=0;j<m;j++){if(a[i][j]>0){flag++;a[i][j]--;} }} printf("%d\n",flag);}return 0;
}

运行结果示例:


 Python解决:

        给定小明的城堡图,请问,水的高度依次为1,2,3,....,H时,有多少块积木要被水淹。

# 给定小明的城堡图,请问,水的高度依次为1,2,3,....,H时,有多少块积木要被水淹。
n, m = map(int, input().split())  # 第一行输入整数  行列
line = []
for i in range(n):# 将input的值传入x 加入line 并且输入的时候按空格隔开line = line + [int(x) for x in input().strip().split(' ')]
h = int(input())  # 高度
flag = 0
for p in range(1, h+1):for i in range(0, n*m):if line[i] >= p:flag += 1print(flag)

运行结果示例:


Java解决:

        给定小明的城堡图,请问,水的高度依次为1,2,3,....,H时,有多少块积木要被水淹。

//给定小明的城堡图,请问,水的高度依次为1,2,3,....,H时,有多少块积木要被水淹。
package lanqiao;
import java.util.Scanner;
public class Test {public static void main(String[] args) {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();//第一行输入的数int a[][] = new int[n][m];//数组for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {a[i][j] = sc.nextInt();}}int H = sc.nextInt();   //最高水限int flag = 0;for (int p = 1; p <= H; p++) {for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (a[i][j] >= p) {flag++;}}}System.out.println(flag);}}
}

运行结果示例:

总结

本题思路参照百度,大家自行学习思想,算法最重要的就是其思想!

【蓝桥杯06】:给定小明的城堡图,请问,水的高度依次为1,2,3,....,H时,有多少块积木要被水淹。相关推荐

  1. 第七届蓝桥杯大赛个人赛--小明被绑架到X星球的巫师W那里

    小明被绑架到X星球的巫师W那里. 其时,W正在玩弄两组数据 (2 3 5 8) 和 (1 4 6 7) 他命令小明从一组数据中分别取数与另一组中的数配对,共配成4对(组中的每个数必被用到). 小明的配 ...

  2. Java 第十一届 蓝桥杯 省模拟赛 小明的城堡

    小明用积木搭了一个城堡. 为了方便,小明在搭的时候用的是一样大小的正方体积本,搭在了一个 n 行 m 列的方格图上,每个积木正好占据方格图的一个小方格. 当然,小明的城堡并不是平面的,而是立体的.小明 ...

  3. 【无标题】蓝桥杯java 给定n个十六进制正整数,输出它们对应的八进制数

    做这道题时,编译器上没问题,放到蓝桥杯上就出问题了,后来网上搜了下,才知道看错题了,输入数据长度不超过100000,不是大小.然后看到一位大佬用C语言写的,三位三位的转换. C代码链接[https:/ ...

  4. Java实现 蓝桥杯 算法提高 小X的购物计划

    试题 算法提高 小X的购物计划 问题描述 小X打算去超市shopping.小X没什么钱,只有N元.超市里有M种物品,每种物品都需要money,在小X心中有一个重要度.有的物品有无限件,有的物品只有几件 ...

  5. Java实现 蓝桥杯算法提高金明的预算方案

    题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NN元 ...

  6. 【蓝桥杯】PREV-55 小计算器

    资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 模拟程序型计算器,依次输入指令,可能包含的指令有 1. 数字:'NUM X',X为一个只包含大写字母和数字的字符串,表示一个当前进制的 ...

  7. 【蓝桥杯】给定圆的半径r,求圆的面积。

    问题描述 给定圆的半径r,求圆的面积. 输入格式 输入包含一个整数r,表示圆的半径. 输出格式 输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积. 说明:在本题中,输入是一个整数,但是输 ...

  8. python【蓝桥杯vip练习题库】BASIC-15字符串对比(水题)

    试题 基础练习 字符串对比 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1 ...

  9. [蓝桥杯][历届试题]网络寻路-dfs,图的遍历

    题目描述 X 国的一个网络使用若干条线路连接若干个节点.节点间的通信是双向的.某重要数据包,为了安全起见,必须恰好被转发两次到达目的地.该包可能在任意一个节点产生,我们需要知道该网络中一共有多少种不同 ...

最新文章

  1. C - 数据结构实验之排序三:bucket sort(水题)
  2. 四级计算机网络考试大纲,2017年全国计算机等级考试四级计算机网络考试大纲...
  3. python数据包的作用_使用Python将登录数据包发送到Minecraft服务器不起作用
  4. Runtime.getRuntime().exec()
  5. 演讲预告:一个月的住院经历,我悟到了哪些和程序员职场发展相关的心得
  6. [转]IaaS、PaaS、SaaS、CaaS、MaaS五者的区别
  7. IndexedDB:浏览器里内置的数据库
  8. ELMo代码详解(二)
  9. HDU 5691 ——Sitting in Line——————【状压动规】
  10. android service 样例(电话录音和获取系统当前时间)
  11. csdn markdown 的使用
  12. 2.vue的不更新特性-重用机制和key属性-data及其他字段-vue生命周期
  13. 基于单片机的音频信号分析仪毕业设计
  14. php 失去焦点,jquery设置焦点方法focus()和jquery失去焦点方法blur()
  15. 我们已经开发好了Magento的Ctopay(收汇宝)非3D网关
  16. 超好看的樱花飘落网络科技官网源码
  17. win7 解决飞秋无法接收文件(准备接收)问题
  18. Python--数据库
  19. 如何找到一个好的学习率
  20. 最具就业前景的 7 大编程语言有哪些?

热门文章

  1. laravel 契约
  2. Python获取全部股票数据
  3. 2022-2028年全球与中国单稳态触发器行业市场需求预测分析
  4. ubuntu16.04环境安装 Qt和Qt Creator
  5. IGS文件格式说明与下载方式- Renix atx ANTEX: The Antenna Exchange Format
  6. 使用openlayers3加载png格式图片
  7. SQL 触发器的缺点 坏处 弊端 哼╭(╯^╰)╮
  8. 移动叔叔MT6573一键ROOT工具!适应所有android2.2/2.3以上系统
  9. 猎豹浏览器发布2.0版,性能大幅提升
  10. 我的第一个C#程序-智能拼图图示