AT_joi2022ho_d.鉄道旅行 2 (Railway Trip 2)

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

从主题库转载。

IOI 铁路公司在一条铁轨上运营线路。铁轨为一条直线,该铁轨上有 NN 个车站,编号为 1∼N1 \sim N。车站 ii 与车站 i+1i + 1 之间由一条铁轨直接连接。

IOI 铁路公司正在运营 MM 条线路,编号为 1∼M1 \sim M。线路 jj 的起点为 AjA_j,终点为 BjB_j,列车在每一站均会停靠,即如果 Aj<BjA_j < B_j,一列 jj 号线的列车会按顺序在车站 Aj,Aj+1,…,BjA_j, A_j + 1, \ldots, B_j 停靠。如果 Aj>BjA_j > B_j,一列 jj 号线的列车会按顺序在车站 Aj,Aj−1,…,BjA_j, A_j - 1, \ldots, B_j 停靠。

JOI 君是一个旅行者。他有 QQ 个旅行计划。在第 kk 个旅行计划中他计划从车站 SkS_k 通过乘坐列车前往车站 TkT_k。

然而,JOI 君因长途跋涉而疲惫不堪。他希望他乘坐的列车均有空座以便休息。因此 JOI 君决定,只有当某条线路的起点站是第 KK 个或更早的车站时,他才会在该站乘坐该条线路的列车。换句话说,对于线路 jj,如果 Aj<BjA_j < B_j,那么他只会在车站 Aj,Aj+1,…,min⁡{Aj+K−1,Bj−1}A_j, A_j + 1, \ldots, \min \{ A_j + K - 1, B_j - 1 \} 乘上线路 jj 的列车。如果 Aj>BjA_j > B_j,那么他只会在车站 Aj,Aj−1,…,max⁡{Aj−K+1,Bj+1}A_j, A_j - 1, \ldots, \max \{ A_j - K + 1, B_j + 1 \} 乘上线路 jj 的列车。

在这些条件下,JOI 君希望尽量减少乘坐火车的次数。

给出 IOI 铁路公司的线路信息和 JOI 君的计划,写一个程序计算对于 JOI 君的每一个计划,他所需的最小乘车次数。

输入格式

第一行,两个正整数 N,KN, K。

第二行,一个正整数 MM。

接下来 MM 行,第 jj 行两个正整数 Aj,BjA_j, B_j。

接下来一行,一个正整数 QQ。

接下来 QQ 行,第 kk 行两个正整数 Sk,TkS_k, T_k。

输出格式

输出 QQ 行,第 kk 行一个数,表示对于 JOI 君的第 kk 个计划,他实现该计划所需的最小乘车次数。如果无论如何无法实现第 kk 个计划,则输出 -1。

输入输出样例

  • 输入#1

    5 2
    2
    5 1
    3 5
    3
    5 3
    3 2
    2 1

    输出#1

    1
    2
    -1
  • 输入#2

    6 3
    2
    1 6
    5 1
    4
    5 1
    6 3
    3 6
    2 1

    输出#2

    1
    -1
    1
    2
  • 输入#3

    6 5
    4
    3 1
    2 4
    5 3
    4 6
    5
    1 5
    3 2
    2 6
    6 3
    5 4

    输出#3

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

    12 1
    5
    1 7
    10 12
    3 5
    8 10
    5 9
    7
    2 11
    5 8
    3 12
    4 6
    1 9
    9 10
    1 4

    输出#4

    -1
    1
    4
    -1
    2
    -1
    1

说明/提示

【样例解释 #1】

对于第一个计划,JOI 君要从车站 55 前往车站 33。具体地,此计划可以通过如下方式实现:JOI 君在车站 55 乘上 11 号线的列车,并在车站 33 下车。JOI 君总共乘坐了一次列车。由于不可能花费比 11 更少的乘车次数实现该计划,在第一行输出 11。

对于第二个计划,JOI 君要从车站 33 前往车站 22。具体地,此计划可以通过如下方式实现:JOI 君在车站 33 乘上 22 号线的列车,并在车站 44 下车;然后在车站 44 乘上 11 号线的列车,并在车站 22 下车。JOI 君总共乘坐了两次列车。由于不可能花费比 22 更少的乘车次数实现该计划,在第二行输出 22。

对于第一个计划,JOI 君要从车站 22 前往车站 11。由于无论如何无法实现该计划,在第三行输出 -1。

这个样例满足子任务 1,2,61, 2, 6 的限制。

【样例解释 #2】

这个样例满足子任务 1,2,61, 2, 6 的限制。

【样例解释 #3】

这个样例满足子任务 1,2,4,61, 2, 4, 6 的限制。

【样例解释 #4】

这个样例满足子任务 1,2,5,61, 2, 5, 6 的限制。


本题采用捆绑测试。

对于 100%100 \% 的数据,2≤N≤1052 \le N \le {10}^5,1≤K≤N−11 \le K \le N - 1,1≤M≤2×1051 \le M \le 2 \times {10}^5,1≤Q≤5×1041 \le Q \le 5 \times {10}^4,1≤Aj,Bj,Sk,Tk≤N1 \le A_j, B_j, S_k, T_k \le N,Aj≠BjA_j \ne B_j,Sk≠TkS_k \ne T_k,(Aj,Bj)≠(Ak,Bk)(A_j, B_j) \ne (A_k, B_k)(j≠kj \ne k),(Sk,Tk)≠(Sl,Tl)(S_k, T_k) \ne (S_l, T_l)(k≠lk \ne l)。

  • 子任务 11(88 分):N,M,Q≤300N, M, Q \le 300。
  • 子任务 22(88 分):N,M,Q≤2000N, M, Q \le 2000。
  • 子任务 33(1111 分):Q=1Q = 1。
  • 子任务 44(2525 分):K=N−1K = N - 1。
  • 子任务 55(3535 分):Aj<BjA_j < B_j,Sk<TkS_k < T_k。
  • 子任务 66(1313 分):无特殊限制。

译自 JOI 2022 Final T4「鉄道旅行 2 / Railway Trip 2」

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

首页