#P8217. [THUPC2022 初赛] 数正方体

[THUPC2022 初赛] 数正方体

题目描述

小 E 有一块面积为 n×mn\times m 的矩形区域,上面有 n×mn\times m 个边长为 11 的格子,第 iijj 列的格子上堆了 Ai,j A_{i,j} 个同样大小的正方体积木。小 E 做了某道题之后,突发奇想把这些正方体画成了字符画,然后让你帮他数一数他一共有多少个正方体。我们定义每个正方体为如下格式,并且不会做任何旋转,只会严格以这一种形式摆放:

..+---+
./   /| 高
+---+ |
|   | +
|   |/.宽
+---+..
长

每个顶点用 11 个 + 表示,长用 33 个 - 表示,宽用 11 个 / 表示,高用两个 | 表示。字符 . 作为背景。中间的空白是空格(ASCII 码为 3232 )。

若两个正方体左右相邻,图示为

..+---+---+
./   /   /|
+---+---+ |
|   |   | +
|   |   |/.
+---+---+..

若两个正方体积木上下相邻,图示为

..+---+
./   /|
+---+ |
|   | +
|   |/|
+---+ |
|   | +
|   |/.
+---+..

若两个正方体前后相邻,图示为

....+---+
.../   /|
..+---+ |
./   /| +
+---+ |/.
|   | +..
|   |/...
+---+....

位于前面的正方体的面会遮挡住位于后面的正方体的面。为了让你看得清楚,没有整列正方体被挡在后面,小E保证了 1AijAi1,j1\le A_{ij} \le A_{i-1,j}1AijAi,j11\le A_{ij}\le A_{i,j-1}。并且图中没有整行或者整列的 . 。所以,一个字符画对应唯一的矩阵 AA,一个矩阵 AA 也对应一个唯一的字符画。

输入格式

第一行两个正整数 r,cr,c,表示图的高度和宽度。(注意不是 nnmm

接下来是一个 rrcc 列的字符画,表示小E堆叠的正方体。

输出格式

一行一个整数,表示正方体的数量。

14 17
....+---+---+....
.../   /   /|....
..+---+---+ |....
./   /|   | +---+
+---+ |   |/   /|
|   | +---+---+ |
|   |/   /|   | +
+---+---+ |   |/|
|   |   | +---+ |
|   |   |/   /| +
+---+---+---+ |/.
|   |   |   | +..
|   |   |   |/...
+---+---+---+....
14

提示

【样例解释】

此时 AA 矩阵为

$$\begin{bmatrix}3 & 3 & 2 \\ 3 & 2 & 1\end{bmatrix} $$

,因为 3+3+3+2+2+1=143+3+3+2+2+1=14,所以图中共有 1414 个正方体。

【数据范围】

保证 1n,m501\le n,m \le 501Aij1001\le A_{ij}\le 100。(注意这里是 nnmm 不是 rrcc

保证 1<in\forall 1<i\le n, AijAi1,jA_{ij}\le A_{i-1,j}

保证 1<j<m\forall 1<j<m, AijAi,j1A_{ij}\le A_{i,j-1}

保证字符画中没有一整行或者一整列是 . 。

小 E 的话:做出这题并不难。不过还是建议在 AC 本题之后看一看题解。