AT_abc440_g [ABC440G] Haunted House
题目描述
万圣节季已经到来。为了考验胆量,你即将挑战一间鬼屋。
鬼屋共有 $F$ 层楼,每层楼由一个 $H$ 行 $W$ 列的网格表示。记单元格 $(k,i,j)$ 为第 $k$ 层网格中,从上数第 $i$ 行、从左数第 $j$ 列的单元格。
单元格 $(k,i,j)$ 的内容由字符 $S_{k,i,j}$ 定义,规则如下:
- 若 $S_{k,i,j}$ 为数字(`0` - `9`),则该单元格为空白单元格,内含的硬币数量等于该数字对应的一位整数。
- 若 $S_{k,i,j}$ 为 `#`,则该单元格为墙壁单元格。
你可以从空白单元格 $(k,i,j)$ 直接移动到另一个空白单元格 $(k', i', j')$,当且仅当后者是空白单元格且满足以下条件之一:
- $k' = k$ 且 $|i' - i| + |j' - j| = 1$(同层上下左右相邻);
- $(k', i', j') = (k+1, i, j)$(移动到上一层同位置);
- $(k', i', j') = (k-1, i, j)$,且单元格 $(k,i,j)$ 处放置了梯子(仅可从有梯子的位置向下移动到下一层同位置)。
你不能移动到网格外。
给定 $Q$ 次询问,请回答每一次询问。第 $i$ 次询问($1 \leq i \leq Q$)要求如下:
- 选择恰好一个空白单元格放置梯子,从单元格 $(G_i, A_i, B_i)$ 出发并持续移动,求能收集到的单元格中硬币总数的最大值。
每次询问相互独立。即,为某次询问放置的梯子不会影响其他询问。
输入格式
输入以标准输入的形式给出,格式如下:
> $ F \ \ H \ \ W $
> $ S_{1,1,1}S_{1,1,2}\cdots S_{1,1,W} $
> $ S_{1,2,1}S_{1,2,2}\cdots S_{1,2,W} $
> $ \vdots $
> $ S_{1,H,1}S_{1,H,2}\cdots S_{1,H,W} $
> $ S_{2,1,1}S_{2,1,2}\cdots S_{2,1,W} $
> $ S_{2,2,1}S_{2,2,2}\cdots S_{2,2,W} $
> $ \vdots $
> $ S_{2,H,1}S_{2,H,2}\cdots S_{2,H,W} $
> $ \vdots $
> $ S_{F,1,1}S_{F,1,2}\cdots S_{F,1,W} $
> $ S_{F,2,1}S_{F,2,2}\cdots S_{F,2,W} $
> $ \vdots $
> $ S_{F,H,1}S_{F,H,2}\cdots S_{F,H,W} $
> $ Q $
> $ G_1 \ \ A_1 \ \ B_1 $
> $ G_2 \ \ A_2 \ \ B_2 $
> $ \vdots $
> $ G_Q \ \ A_Q \ \ B_Q $
输出格式
输出 $Q$ 行,第 $i$ 行输出第 $i$ 次询问的答案。
说明/提示
### 样例解释 1
对于第一次询问,在单元格 $(2,3,5)$ 放置梯子并按以下方式移动,可收集到的硬币总数为 $47$:
1. 从第一层的单元格 $(1,2,3)$ 出发;
2. 向上移动到第二层,按顺序移动:$(2,2,3) \to (2,2,4) \to (2,2,5) \to (2,3,5)$;
3. 向下移动到第一层,按顺序移动:$(1,3,5) \to (1,4,5) \to (1,4,4) \to (1,3,4) \to (1,4,4)$;
4. 向上移动到第二层,按顺序移动:$(2,4,4) \to (2,4,3) \to (2,4,2) \to (2,3,2) \to (2,4,2) \to (2,4,3) \to (2,4,4)$;
5. 向上移动到第三层,按顺序移动:$(3,4,4) \to (3,4,5)$。
对于第二次询问,在单元格 $(2,4,4)$ 放置梯子,按照以下步骤移动,你收集到的经过单元格的硬币总数可以达到 $34$:
1. 在第二层按顺序移动:$(2,3,2) \to (2,4,2) \to (2,4,3) \to (2,4,4)$;
2. 向下移动到第一层,再按顺序移动:$(1,4,4) \to (1,4,5) \to (1,3,5) \to (1,3,4) \to (1,4,4)$;
3. 向上移动回到第二层,到达单元格 $(2,4,4)$;
4. 向上移动到第三层,再按顺序移动:$(3,4,4) \to (3,4,5)$。
对于第三次询问,无论你将梯子放置在哪个单元格,都无法从起点单元格 $(3,2,2)$ 移动到其他位置。
### 数据范围
- $F,H,W$ 为整数;
- $1 \leq F \leq 10$;
- $1 \leq H,W \leq 500$;
- $S_{k,i,j}$ 为数字(`0`-`9`)或 `#`($1 \leq k \leq F, 1 \leq i \leq H, 1 \leq j \leq W$);
- $Q$ 为整数;
- $1 \leq Q \leq 10^5$;
- $G_i, A_i, B_i$ 为整数($1 \leq i \leq Q$);
- $1 \leq G_i \leq F$($1 \leq i \leq Q$);
- $1 \leq A_i \leq H$($1 \leq i \leq Q$);
- $1 \leq B_i \leq W$($1 \leq i \leq Q$);
- $S_{G_i, A_i, B_i}$ 不为 `#`($1 \leq i \leq Q$)。