UVA13011 Height map
题目描述
高度图是一个由正整数组成的二维矩阵,它表示一个多面体。矩阵中每个值为 $ V $ 的单元格代表一个 $ 1 \times 1 \times V $ 的柱形长方体,该柱以其
$ 1 \times 1 $ 的面放置在单元格上。这样形成的多面体,其底面是一个单一平面,由所有朝下的
$ 1 \times 1 $ 面合并而成;而在顶面和侧面则可能形成多个面。例如,一个
$ 2 \times 2 $ 矩阵所有值均为 $ 2 $,则表示一个边长为 $ 2 $ 的立方体。但如果其中一个值为 $ 1 $,则该多面体相当于同一个立方体切掉了一个角。下图展示了这两种情况。

并非所有多面体都能用这种方式表示,但有不少可以。下面是另外几个例子。

给定一个高度图,要求计算所表示的多面体的面数。注意:面定义为描述多面体连续且最大边界的简单多边形。如最后两个例子所示,两个共面的不同面可能共享一个顶点,甚至一条边或边的一部分。
输入格式
输入包含多个测试用例,每个测试用例格式如下。第一行包含两个整数 $ R $ 和 $ C $,分别表示高度图的行数和列数 ( $ 1 \le R, C \le 100 $ )。接下来的 $ R $ 行,每行包含 $ C $ 个整数;第 $ i $ 行第 $ j $ 个整数为 $ V_{i, j} $,表示矩阵中第 $ i $ 行第 $ j $ 列的值 ( $ 1 \le V_{i, j} \le 10^9$ )。
输出格式
对于每个测试用例,输出一行一个整数,表示输入高度图所表示的多面体的面数。
说明/提示
由 DeepSeek R1 翻译