我正在尝试从 SPOJ 解决以下问题:
在包含 n m 个场的矩形网格上,放置 n m 个长方体,每个场上一个长方体。每个长方体的底面覆盖一个区域,其表面积等于一平方英寸。相邻场上的长方体彼此紧密相连,以至于它们之间没有间隙。一场大雨倾盆而下,在一些地方出现了水坑。
任务
编写一个程序:
- 从标准输入中读取棋盘的大小和放置在场上的长方体的高度
- 计算最大水量,雨后可能聚集在水坑中
- 将结果写入标准输出。
输入
测试用例的数量 t 在输入的第一行,然后是 t 个测试用例,以空行分隔。在每个测试用例的第一行,写入两个正整数 1 <= n <= 100, 1 <= m <= 100。它们是网格的大小。在以下 n 行的每一行中,有 m 个来自区间 [1..10000] 的整数;第 j 行中的第 i 个数字表示长方体的高度,以英寸为单位,放在第 i 列和第 j 个棋盘上的场地上。
输出
你的程序应该为每个案例写一个等于最大水量的整数(以立方英寸为单位),它可能会聚集在结构上的水坑中。
Example Sample input: 1 3 6 3 3 4 4 4 2 3 1 3 2 1 4 7 3 1 6 4 1 Sample output: 5
我正在使用 BFS 来添加从边界元素流入水坑的水量(如果找到任何路径)。但我无法处理水坑可能像两个连续的长方体的情况。任何人都可以帮我处理这个案子吗?