#P10439. [JOIST 2024] 逃生路线 2 / Escape Route 2

[JOIST 2024] 逃生路线 2 / Escape Route 2

题目描述

IOI 王国由从西向东排列的 NN 座城市组成,城市按照从西向东的顺序从 11 到 NN 编号。

在 IOI 王国,他们使用 Byou 作为时间单位。IOI 王国的一天被分为 TT 个时间单位。从某一天开始后的 xx 个 Byous(0≤x<T0 \leq x < T)被称为时间 xx。因此,当从某一天的时间 T−1T - 1 开始经过 11 个 Byou 时,将成为下一天的时间 00。

JOI 组织是 IOI 王国的秘密教派之一。由于它是一个秘密教派,成员必须绕过国家的检查站。因此,JOI 组织成员只能使用 JOY 航空公司运营的航班进行城市间旅行。

JOY 航空公司在城市 ii(1≤i≤N−11 \leq i \leq N - 1)提供 MiM_i 趟航班。第 jj 趟航班(1≤j≤Mi1 \leq j \leq M_i)每天从城市 ii 在时间 Ai,jA_{i,j} 起飞,于当天的时间 Bi,jB_{i,j} 到达城市 i+1i + 1。这里,满足 Ai,j<Bi,jA_{i,j} < B_{i,j}。

这些航班提供了便捷的转机服务,也可以在抵达后立即起飞或在公司的机场过夜。

JOI 组织有 QQ 名成员,编号从 11 到 QQ。成员 kk(1≤k≤Q1 \leq k \leq Q)将他们的运营基地设在城市 LkL_k,生活基地设在城市 RkR_k。因此,他们想知道通过选择从城市 LkL_k 出发的时间和适当的航班进行,从城市 LkL_k 出发到城市 RkR_k 的最短时间。

给定 JOY 航空公司运营的航班和 JOI 组织成员的信息,编写一个程序,找到每个成员 kk 从城市 LkL_k 到城市 RkR_k 的最短时间。

输入格式

从标准输入中读取以下数据。

  • NN TT
  • M1M_1
  • A1,1A_{1,1} B1,1B_{1,1}
  • A1,2A_{1,2} B1,2B_{1,2}
  • ...
  • A1,M1A_{1,M_1} B1,M1B_{1,M_1}
  • M2M_2
  • A2,1A_{2,1} B2,1B_{2,1}
  • A2,2A_{2,2} B2,2B_{2,2}
  • ...
  • A2,M2A_{2,M_2} B2,M2B_{2,M_2}
  • ...
  • MN−1M_{N-1}
  • AN−1,1A_{N-1,1} BN−1,1B_{N-1,1}
  • AN−1,2A_{N-1,2} BN−1,2B_{N-1,2}
  • ...
  • AN−1,MN−1A_{N-1,M_{N-1}} BN−1,MN−1B_{N-1,M_{N-1}}
  • QQ
  • L1L_1 R1R_1
  • L2L_2 R2R_2
  • ...
  • LQL_Q RQR_Q

输出格式

输出 QQ 行到标准输出。在第 kk 行(1≤k≤Q1 \leq k \leq Q),输出成员 kk 从城市 LkL_k 到城市 RkR_k 所需的最短时间。

4 10000
1
100 300
2
200 400
300 600
1
500 600
3
1 3
2 4
1 4
500
400
10500
6 10000
1
100 300
1
400 700
1
500 600
1
300 900
1
200 800
1
1 6

30700

提示

样例解释 1

作为演示,让我们将成员 kk 从城市 LkL_k 出发的第一天称为第 11 天。成员 11 可以按照以下行动在 500500 Byou 内从城市 11 前往城市 33:

  1. 第 11 天时刻 100100 从城市 11 出发,并在第 11 天时刻 300300 到达城市 22。
  2. 第 11 天时刻 300300 从城市 22 出发,并在第 11 天时刻 600600 到达城市 33。

由于没有更快的旅行方式,所以在第 11 行输出 500500。

成员 22 可以按照以下行动在 400400 Byou 内从城市 22 前往城市 44:

  1. 第 11 天时刻 200200 从城市 22 出发,并在第 11 天时刻 400400 到达城市 33。
  2. 第 11 天时刻 500500 从城市 33 出发,并在第 11 天时刻 600600 到达城市 44。

由于没有更快的旅行方式,所以在第 22 行输出 400400。

成员 33 可以按照以下行动在 1050010500 Byou 内从城市 11 前往城市 44:

  1. 第 11 天时刻 100100 从城市 11 出发,并在第 11 天时刻 300300 到达城市 22。
  2. 第 11 天时刻 300300 从城市 22 出发,并在第 11 天时刻 600600 到达城市 33。
  3. 第 22 天时刻 500500 从城市 33 出发,并在第 22 天时刻 600600 到达城市 44。

由于没有更快的旅行方式,所以在第 33 行输出 1050010500。

这个样例输入满足子任务 2,4,5,62,4,5,6 的限制条件。

样例解释 2

这个样例输入满足所有子任务的约束条件。

约束条件

  • 2≤N≤100,0002 \leq N \leq 100,000
  • 2≤T≤1092 \leq T \leq 10^9
  • Mi≥1M_i \geq 1(1≤i≤N−11 \leq i \leq N - 1)
  • M1+M2+⋯+MN−1≤100,000M_1 + M_2 + \cdots + M_{N-1} \leq 100,000
  • 0≤Ai,j<Bi,j<T0 \leq A_{i,j} < B_{i,j} < T(1≤i≤N−1,1≤j≤Mi1 \leq i \leq N - 1, 1 \leq j \leq M_i)
  • 1≤Q≤300,0001 \leq Q \leq 300,000
  • 1≤Lk<Rk≤N1 \leq L_k < R_k \leq N(1≤k≤Q1 \leq k \leq Q)
  • 给定值均为整数。

子任务

  1. (6 分) N≤2,000N \leq 2,000,Mi=1M_i = 1(1≤i≤N−11 \leq i \leq N - 1)
  2. (8 分) N≤2,000N \leq 2,000,Mi≤5M_i \leq 5(1≤i≤N−11 \leq i \leq N - 1)
  3. (17 分) Mi=1M_i = 1(1≤i≤N−11 \leq i \leq N - 1)
  4. (23 分) Mi≤5M_i \leq 5(1≤i≤N−11 \leq i \leq N - 1)
  5. (36 分) N≤90,000N \leq 90,000,Q≤90,000Q \leq 90,000,M1+M2+⋯+MN−1≤90,000M_1 + M_2 + \cdots + M_{N-1} \leq 90,000
  6. (10 分) 无额外约束条件。