AT_joisp2025_c.ビ太郎の旅 2 (Bitaro's Travel 2)

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

JOI 山脉上有许多山峰排列成行。JOI 山脉可以表示为一个被划分为 HH 行 WW 列的网格,纵向与南北方向平行,横向与东西方向平行。从北往南第 ii 行(1≤i≤H1 \leq i \leq H),从西往东第 jj 列(1≤j≤W1\leq j\leq W)的格子被称为格子 (i,j)(i, j)。每个格子中正好有一个山峰,格子 (i,j)(i, j) 的山顶高度为 Ti,jT_{i, j}。

比太郎的跳跃力为 LL。比太郎在山顶时,可以通过高跳移动到另一个山顶。高跳是指顺序执行以下操作:

  • 从当前位置山顶向上跳跃。若当前山顶高度为 xx,比太郎将漂浮到高度 x+L+0.5x + L + 0.5 的位置。
  • 可以任意次(包括 00 次)以相同高度水平移动到东西南北相邻的格子。此移动过程中,经过的所有格子上的山顶高度都必须严格小于比太郎漂浮的高度。
  • 在当前格子的山顶落地。

比太郎计划进行 QQ 次旅行。第 kk 次(1≤k≤Q1\leq k\leq Q)旅行的内容是:仅通过高跳,从格子 (Ak,Bk)(A_{k}, B_{k}) 的山顶,移动到格子 (Ck,Dk)(C_{k}, D_{k}) 的山顶。比太郎想知道每次旅行能否成功,如果成功,还想知道所需的高跳次数的最小值。

给定 JOI 山脉各山的高度、比太郎的跳跃力以及所有旅行计划,请你判断每次旅行是否可达,若可以还要输出所需高跳次数的最小值。


输入格式

输入从标准输入按下列格式给出。

HH WW LL T1,1T_{1,1} T1,2T_{1,2} …\ldots T1,WT_{1,W} T2,1T_{2,1} T2,2T_{2,2} …\ldots T2,WT_{2,W} ⋮\vdots TH,1T_{H,1} TH,2T_{H,2} …\ldots TH,WT_{H,W} QQ A1A_1 B1B_1 C1C_1 D1D_1 A2A_2 B2B_2 C2C_2 D2D_2 ⋮\vdots AQA_Q BQB_Q CQC_Q DQD_Q

输出格式

请输出 QQ 行。对于第 kk 行(1≤k≤Q1\leq k\leq Q),输出使得第 kk 次旅行成功所需的最小高跳次数。若该旅行无法成功,则输出 -1。

输入输出样例

  • 输入#1

    2 4 5
    1 3 22 1
    8 13 6 16
    6
    1 1 2 2
    1 1 1 3
    1 1 2 3
    1 1 2 4
    1 1 1 4
    1 1 1 2

    输出#1

    3
    -1
    3
    4
    4
    1
  • 输入#2

    6 5 11
    175 100 110 117 158
    144 133 123 150 191
    167 252 219 181 346
    231 241 280 201 209
    261 332 325 225 338
    269 298 315 291 308
    12
    1 1 4 2
    1 1 1 5
    1 1 5 1
    1 1 5 4
    1 1 3 4
    1 1 6 4
    1 1 2 5
    1 1 3 1
    1 1 4 4
    1 1 5 5
    1 1 6 2
    1 1 6 1

    输出#2

    8
    1
    10
    6
    1
    13
    2
    1
    3
    19
    14
    11
  • 输入#3

    4 4 5
    53 55 51 49
    56 60 89 45
    54 57 92 43
    96 99 95 92
    9
    1 4 2 3
    4 1 3 2
    2 4 2 3
    2 1 4 1
    1 2 1 1
    2 4 1 1
    4 1 2 3
    3 4 1 1
    1 3 1 4

    输出#3

    -1
    1
    -1
    -1
    1
    3
    1
    4
    1

说明/提示

子任务

1.(1010 分)H×W≤300H\times W \leq 300,Q≤150 000Q\leq 150\,000。
2.(2020 分)H×W≤3 000H\times W \leq 3\,000,Q≤150 000Q\leq 150\,000。
3.(2020 分)H×W≤150 000H\times W \leq 150\,000,Q≤150 000Q\leq 150\,000,(Ak,Bk)=(1,1)(A_{k}, B_{k}) = (1, 1)(1≤k≤Q1\leq k\leq Q)。
4.(3030 分)H×W≤150 000H\times W \leq 150\,000,Q≤150 000Q\leq 150\,000。
5.(2020 分)无额外约束。


样例解释 1

对于第 11 次旅行,可以如下完成 33 次高跳,从 (1,1)(1, 1) 的山顶到 (2,2)(2, 2) 的山顶。

  • 第 11 次高跳:
    • 从 (1,1)(1, 1) 山顶跳起,此时比太郎高度为 6.56.5。
    • 移动到 (1,2)(1, 2)。(1,2)(1, 2) 山高度为 33,小于 6.56.5,可以通过。
    • 落地在 (1,2)(1, 2)。
  • 第 22 次高跳:
    • 从 (1,2)(1, 2) 山顶跳起,比太郎高度为 8.58.5。
    • 移动到 (1,1)(1, 1)。
    • 移动到 (2,1)(2, 1)。
    • 落地在 (2,1)(2, 1)。
  • 第 33 次高跳:
    • 从 (2,1)(2, 1) 山顶跳起,比太郎高度为 13.513.5。
    • 移动到 (2,2)(2, 2)。
    • 落地在 (2,2)(2, 2)。

不能用更少于 33 次高跳完成第 11 次旅行,因此第 11 行输出 33。

第 22 次旅行无法成功,因此第 22 行输出 -1。

该输入满足所有子任务的约束。


样例解释 2

该输入满足所有子任务的约束。


样例解释 3

该输入满足子任务 1,2,4,51,2,4,5 的约束。

数据范围与提示

  • 1≤H1\leq H。
  • 1≤W1\leq W。
  • 2≤H×W≤300 0002\leq H\times W\leq 300\,000。
  • 1≤L≤1091\leq L\leq 10^{9}。
  • 1≤Ti,j≤1091\leq T_{i, j}\leq 10^{9}(1≤i≤H,1≤j≤W1\leq i\leq H, 1\leq j\leq W)。
  • 1≤Q≤300 0001\leq Q \leq 300\,000。
  • 1≤Ak≤H1\leq A_{k} \leq H(1≤k≤Q1\leq k\leq Q)。
  • 1≤Bk≤W1\leq B_{k} \leq W(1≤k≤Q1\leq k\leq Q)。
  • 1≤Ck≤H1\leq C_{k} \leq H(1≤k≤Q1\leq k\leq Q)。
  • 1≤Dk≤W1\leq D_{k} \leq W(1≤k≤Q1\leq k\leq Q)。
  • (Ak,Bk)≠(Ck,Dk)(A_{k}, B_{k}) \neq (C_{k}, D_{k})(1≤k≤Q1\leq k\leq Q)。
  • 所有输入均为整数。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页