#P16577. [GKS 2016 #A] Rain
[GKS 2016 #A] Rain
题目描述
海上有座岛屿。该岛屿可以用一个 行 列的矩阵描述,其中 表示每个单位格子的高度。以下是一个 岛屿的示例:
3 5 5
5 4 5
5 5 5
有时,一场大雨会均匀地落在岛屿的每个格子上。你可以假设降下的水量任意大。这样一场大雨过后,岛屿的某些区域(由一个或多个沿边相连的单位格子组成)可能会积水。只有当区域内每个与区域外格子共享一条边(不仅仅是一个角)的格子,其相邻的区域外格子的高度都更大时,才会发生积水。(周围的海洋视为高度为 的无限网格。)否则,水总会流入一个或多个相邻区域(具体流向哪个对我们而言不重要),并最终流入海洋。你可以假设海平面高度永远不会改变。我们用 表示大雨过后岛屿格子的高度。下面是大雨后示例岛屿的高度。初始高度为 的格子只与初始高度更高的格子相邻,因此水会积聚在其中,将其高度提升到 。在此之后,不再有被更高格子包围的区域,因此不会再有积水。再次注意,水不能仅通过角点接触的格子之间直接流动;水必须沿着共享的边流动。
以下是大雨后示例岛屿的高度:
3 5 5
5 5 5
5 5 5
给定岛屿的高度矩阵,你能计算出大雨过后的总增加高度()吗?
输入格式
输入的第一行给出测试用例的数量 。接下来有 个测试用例。
每个测试用例的第一行包含两个数字 和 ,表示岛屿的行数和列数。然后有 行,每行 个正整数。这些行中第 行的第 个值表示 :第 行第 列格子的高度。
输出格式
对于每个测试用例,输出一行,格式为 Case #x: y,其中 是测试用例编号(从 开始), 是总增加高度。
3
3 3
3 5 5
5 4 5
5 5 5
4 4
5 5 5 1
5 1 1 5
5 1 5 5
5 2 5 8
4 3
2 2 2
2 1 2
2 1 2
2 1 2
Case #1: 1
Case #2: 3
Case #3: 0
提示
限制条件
。
。
小数据集(测试集 1 – 可见)
。
。
大数据集(测试集 2 – 隐藏)
。
。
翻译由 DeepSeek V4 Pro 完成