AT_abc413_f [ABC413F] No Passage
题目描述
有一个 $H$ 行 $W$ 列的网格。我们用 $(i,j)$ 表示从上往下第 $i$ 行、从左往右第 $j$ 列的格子。在这些格子中,有 $K$ 个格子是“终点”。第 $i$ 个终点($1 \leq i \leq K$)位于格子 $(R_i, C_i)$。
高桥君和青木君用这个网格和放在网格上的一个棋子进行游戏。棋子到达终点格子之前,两人会不断重复以下操作:
- 青木君选择一个 $1$ 到 $4$ 之间的整数 $a$。
- 然后,高桥君选择一个 $1$ 到 $4$ 之间的整数 $b$,但要求 $a \neq b$。假设操作前棋子在 $(i,j)$,则根据 $b$ 的值和棋子的位置,按如下方式移动棋子:
- 若 $b=1$:如果 $(i-1,j)$ 在网格内,则将棋子从 $(i,j)$ 移动到 $(i-1,j)$,否则不移动。
- 若 $b=2$:如果 $(i+1,j)$ 在网格内,则将棋子从 $(i,j)$ 移动到 $(i+1,j)$,否则不移动。
- 若 $b=3$:如果 $(i,j-1)$ 在网格内,则将棋子从 $(i,j)$ 移动到 $(i,j-1)$,否则不移动。
- 若 $b=4$:如果 $(i,j+1)$ 在网格内,则将棋子从 $(i,j)$ 移动到 $(i,j+1)$,否则不移动。
高桥君的目标是让棋子以最少的步数到达终点。青木君的目标是让棋子无法到达终点,如果无法做到,则尽量让步数最大化。
对于所有满足 $1 \leq i \leq H, 1 \leq j \leq W$ 的整数对 $(i,j)$,请解决以下问题,并求出所有解的总和:
> 棋子从格子 $(i,j)$ 开始游戏。两人都以各自的目标采取最优策略。如果高桥君能让棋子到达终点,则输出所需的最小步数,否则输出 $0$。
输入格式
输入按以下格式从标准输入读入:
> $H$ $W$ $K$
> $R_1$ $C_1$
> $R_2$ $C_2$
> $\vdots$
> $R_K$ $C_K$
输出格式
请输出答案。
说明/提示
### 限制条件
- $2 \leq H \leq 3000$
- $2 \leq W \leq 3000$
- $1 \leq K \leq \min(HW, 3000)$
- $1 \leq R_i \leq H$
- $1 \leq C_i \leq W$
- $(R_i, C_i) \neq (R_j, C_j)$($1 \leq i < j \leq K$)
- 所有输入均为整数
### 样例解释 1
当 $(i,j)=(1,2),(2,1)$ 时,起始格子就是终点,因此答案为 $0$。当 $(i,j)=(1,1),(2,2)$ 时,无论青木君选择哪个 $a$,高桥君都能用 $1$ 步将棋子移动到终点,因此答案为 $1$。当 $(i,j)=(1,3),(2,3)$ 时,高桥君无法让棋子到达终点,因此答案为 $0$。这些的总和为 $0 \times 2 + 1 \times 2 + 0 \times 2 = 2$。因此输出 $2$。
由 ChatGPT 4.1 翻译