小明用积木搭了一个城堡。

  为了方便,小明在搭的时候用的是一样大小的正方体积本,搭在了一个 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;

  对于所有评测用例,1 <= n, m <= 1000,1 <= H <= 100000,积木层数不超过1000000000。

package 蓝桥杯省模拟赛_高职组;

import java.util.Arrays;
import java.util.Scanner; public class 小明的城堡 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
long[] map = new long[n * m];
for (int i = 0; i < map.length; i++) {
map[i] = sc.nextLong();
}
int h = sc.nextInt();
Arrays.sort(map);
sc.close();
long[] num = new long[h];
for (int i = 0; i < num.length; i++) {
long y = 0;
A:
for (int j = map.length - 1; j >= 0; j--) {
if (map[j] == 0) {
break A;
}
y++;
map[j]--;
}
if (i > 0) {
num[i] = y + num[i - 1];
} else {
num[i] = y;
} }
for (int i = 0; i < num.length; i++) {
System.out.println(num[i]);
}
}
}

Java 第十一届 蓝桥杯 省模拟赛 小明的城堡的更多相关文章

  1. Java 第十一届 蓝桥杯 省模拟赛 小明植树(DFS)

    小明植树 题目 问题描述 小明和朋友们一起去郊外植树,他们带了一些在自己实验室精心研究出的小树苗. 小明和朋友们一共有 n 个人,他们经过精心挑选,在一块空地上每个人挑选了一个适合植树的位置,总共 n ...

  2. Java 第十一届 蓝桥杯 省模拟赛 梅花桩

    小明每天都要练功,练功中的重要一项是梅花桩. 小明练功的梅花桩排列成 n 行 m 列,相邻两行的距离为 1,相邻两列的距离也为 1. 小明站在第 1 行第 1 列上,他要走到第 n 行第 m 列上.小 ...

  3. Java 第十一届 蓝桥杯 省模拟赛 元音字母辅音字母的数量

    给定一个单词,请计算这个单词中有多少个元音字母,多少个辅音字母. 元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母. 输入格式 输入一行,包含一个单词,单词中只包含小写英文字母. 输 ...

  4. Java 第十一届 蓝桥杯 省模拟赛 递增序列

    问题描述 在数列 a[1], a[2], -, a[n] 中,如果 a[i] < a[i+1] < a[i+2] < - < a[j],则称 a[i] 至 a[j] 为一段递增 ...

  5. Java 第十一届 蓝桥杯 省模拟赛 最大的元素距离

    在数列 a_1, a_2, -, a_n中,定义两个元素 a_i 和 a_j 的距离为 |i-j|+|a_i-a_j|,即元素下标的距离加上元素值的差的绝对值,其中 |x| 表示 x 的绝对值. 给定 ...

  6. Java 第十一届 蓝桥杯 省模拟赛 洁净数

    洁净数 小明非常不喜欢数字 2,包括那些数位上包含数字 2 的数.如果一个数的数位不包含数字 2,小明将它称为洁净数. 请问在整数 1 至 n 中,洁净数有多少个? 输入格式 输入的第一行包含一个整数 ...

  7. Java 第十一届 蓝桥杯 省模拟赛 第十层的二叉树

    一棵10层的二叉树,最多包含多少个结点? 注意当一棵二叉树只有一个结点时为一层. 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整数,在提交答案时只填写这个整数,填写多余 ...

  8. Java 第十一届 蓝桥杯 省模拟赛 70044与113148的最大公约数

    问题描述 70044与113148的最大公约数是多少? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分. pac ...

  9. Java 第十一届 蓝桥杯 省模拟赛 19000互质的个数

    问题描述 不超过19000的正整数中,与19000互质的数的个数是多少? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将 ...

随机推荐

  1. 【Hadoop离线基础总结】oozie调度shell脚本

    目录 1.解压官方提供的调度案例 2.创建工作目录 3.拷贝任务模板到工作目录当中去 4.随意准备一个shell脚本 5.修改模板下的配置文件 6.上传调度任务到hdfs上面去 7.执行调度任务 1. ...

  2. linux centos7搭建redis-5.0.5

    1. 下载redis 1.1 下载地址 http://download.redis.io/releases/ 1.2 安装版本 redis-5.0.5.tar.gz 2. 安装redis 2.1 前置 ...

  3. My sql的知识点 不足点请指点谢谢

    My SQL:(关系数据库) 数据库能够能够干吗? 1. :存储大量的信息,方便检索和访问    2. :保持数据信息的一致,完整      3. : 共享和安全 4. : 通过组合分析,产生新的有用 ...

  4. 最近关于pc 组装总结

    1. 平台之争 amd 还是intel 这个时代,intel 的cpu已经领先amd 太多了.工艺上门,虽然amd 的u 一般都不锁倍频,但是oc的代价是要有一块堆料的主板,然后散热要牛逼,好的散热至 ...

  5. Django模板之模板变量

    深度查询句点符(.)在模板语言中有特殊的含义. 当模版系统遇到点("."),它将以这样的顺序查询: 字典查询(Dictionary lookup) 属性或方法查询(Attribut ...

  6. Java并发包4--可重入锁ReentrantLock的实现原理

    前言 ReentrantLock是JUC提供的可重入锁的实现,用法上几乎等同于Synchronized,但是ReentrantLock在功能的丰富性上要比Synchronized要强大. 一.Reen ...

  7. JMM_Java内存模型

    一.什么是 JMM JMM : Java 内存模型,它并不实际存在,是一种概念,一种约定! 作用 :主要是定义了 线程 与 主内存 之间存取数据的一些规则,进行一定的约束. 二.关于 JMM 的约定 ...

  8. 花6个月写的付费专栏,免费送|仿开源框架从零到一完整实现高性能、可扩展的RPC框架

    作者 渡码,阿里巴巴码农,公众号:渡码 作者,专注大数据开发.数据分析和Python技术. 关注公众号 渡码 回复关键字 manis,可获取电子书.各章节和完整源代码,并且可加入读者群一起交流问题. ...

  9. Codeblocks运行按钮变灰,卡程序编译

    实际上,当我们点击绿色运行按钮运行之后,.exe文件会开始运行,当我们点击红色调试按钮之后,会开始调试. 因此当我们在运行卡住之后,点击红色调试按钮,实际上并没有真正的结束程序,只是将窗口隐藏起来,我 ...

  10. 【Leetcode】560. 和为K的子数组&974. 和可被 K 整除的子数组(前缀和+哈希表)

    public class Solution { public int subarraySum(int[] nums, int k) { int count = 0, pre = 0; HashMap ...