AT_joisp2025_c ビ太郎の旅 2 (Bitaro's Travel 2)
题目描述
JOI 山脉上有许多山峰排列成行。JOI 山脉可以表示为一个被划分为 $H$ 行 $W$ 列的网格,纵向与南北方向平行,横向与东西方向平行。从北往南第 $i$ 行($1 \leq i \leq H$),从西往东第 $j$ 列($1\leq j\leq W$)的格子被称为格子 $(i, j)$。每个格子中正好有一个山峰,格子 $(i, j)$ 的山顶高度为 $T_{i, j}$。
比太郎的跳跃力为 $L$。比太郎在山顶时,可以通过**高跳**移动到另一个山顶。**高跳**是指顺序执行以下操作:
- 从当前位置山顶向上跳跃。若当前山顶高度为 $x$,比太郎将漂浮到高度 $x + L + 0.5$ 的位置。
- 可以任意次(包括 $0$ 次)以相同高度水平移动到东西南北相邻的格子。此移动过程中,经过的所有格子上的山顶高度都必须严格小于比太郎漂浮的高度。
- 在当前格子的山顶落地。
比太郎计划进行 $Q$ 次旅行。第 $k$ 次($1\leq k\leq Q$)旅行的内容是:仅通过高跳,从格子 $(A_{k}, B_{k})$ 的山顶,移动到格子 $(C_{k}, D_{k})$ 的山顶。比太郎想知道每次旅行能否成功,如果成功,还想知道所需的高跳次数的最小值。
给定 JOI 山脉各山的高度、比太郎的跳跃力以及所有旅行计划,请你判断每次旅行是否可达,若可以还要输出所需高跳次数的最小值。
---
输入格式
输入从标准输入按下列格式给出。
> $H$ $W$ $L$ $T_{1,1}$ $T_{1,2}$ $\ldots$ $T_{1,W}$ $T_{2,1}$ $T_{2,2}$ $\ldots$ $T_{2,W}$ $\vdots$ $T_{H,1}$ $T_{H,2}$ $\ldots$ $T_{H,W}$ $Q$ $A_1$ $B_1$ $C_1$ $D_1$ $A_2$ $B_2$ $C_2$ $D_2$ $\vdots$ $A_Q$ $B_Q$ $C_Q$ $D_Q$
输出格式
请输出 $Q$ 行。对于第 $k$ 行($1\leq k\leq Q$),输出使得第 $k$ 次旅行成功所需的最小高跳次数。若该旅行无法成功,则输出 `-1`。
说明/提示
### 子任务
1.($10$ 分)$H\times W \leq 300$,$Q\leq 150\,000$。
2.($20$ 分)$H\times W \leq 3\,000$,$Q\leq 150\,000$。
3.($20$ 分)$H\times W \leq 150\,000$,$Q\leq 150\,000$,$(A_{k}, B_{k}) = (1, 1)$($1\leq k\leq Q$)。
4.($30$ 分)$H\times W \leq 150\,000$,$Q\leq 150\,000$。
5.($20$ 分)无额外约束。
---
### 样例解释 1
对于第 $1$ 次旅行,可以如下完成 $3$ 次高跳,从 $(1, 1)$ 的山顶到 $(2, 2)$ 的山顶。
- 第 $1$ 次高跳:
- 从 $(1, 1)$ 山顶跳起,此时比太郎高度为 $6.5$。
- 移动到 $(1, 2)$。$(1, 2)$ 山高度为 $3$,小于 $6.5$,可以通过。
- 落地在 $(1, 2)$。
- 第 $2$ 次高跳:
- 从 $(1, 2)$ 山顶跳起,比太郎高度为 $8.5$。
- 移动到 $(1, 1)$。
- 移动到 $(2, 1)$。
- 落地在 $(2, 1)$。
- 第 $3$ 次高跳:
- 从 $(2, 1)$ 山顶跳起,比太郎高度为 $13.5$。
- 移动到 $(2, 2)$。
- 落地在 $(2, 2)$。
不能用更少于 $3$ 次高跳完成第 $1$ 次旅行,因此第 $1$ 行输出 $3$。
第 $2$ 次旅行无法成功,因此第 $2$ 行输出 `-1`。
该输入满足所有子任务的约束。
---
### 样例解释 2
该输入满足所有子任务的约束。
---
### 样例解释 3
该输入满足子任务 $1,2,4,5$ 的约束。
# 数据范围与提示
- $1\leq H$。
- $1\leq W$。
- $2\leq H\times W\leq 300\,000$。
- $1\leq L\leq 10^{9}$。
- $1\leq T_{i, j}\leq 10^{9}$($1\leq i\leq H, 1\leq j\leq W$)。
- $1\leq Q \leq 300\,000$。
- $1\leq A_{k} \leq H$($1\leq k\leq Q$)。
- $1\leq B_{k} \leq W$($1\leq k\leq Q$)。
- $1\leq C_{k} \leq H$($1\leq k\leq Q$)。
- $1\leq D_{k} \leq W$($1\leq k\leq Q$)。
- $(A_{k}, B_{k}) \neq (C_{k}, D_{k})$($1\leq k\leq Q$)。
- 所有输入均为整数。
由 ChatGPT 5 翻译