#L4775. 「JOI 2025 Final」我的缆车

    ID: 3970 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>离散化双指针线段树图的可达性区间覆盖最优化问题

「JOI 2025 Final」我的缆车

题目描述

题目译自 JOI 2025 Final T3 「ミ・テレフェリコ / Mi Teleférico」

玻利维亚的首都拉巴斯不仅是一个旅游胜地,还因其缆车网络「我的缆车(Mi Teleférico)」而闻名。你现在正在拉巴斯旅游,想尽可能参观更多的景点。让我们简化现实中的情况,考虑以下设置。

拉巴斯有 NN 个缆车站,它们按海拔高度从低到高依次编号为 11NN。此外,有 MM 条单向缆车路线,编号为 11MM。还有 PP 家缆车公司,编号为 11PP。每条路线由一家缆车公司管理。路线 ii (1iM1 \leq i \leq M) 从车站 AiA_i 到车站 BiB_i 运行,由公司 CiC_i 管理。路线总是从低海拔车站运行到高海拔车站,即 Ai<BiA_i < B_i

为了方便,拉巴斯交通局发行了通票。每张通票上有两个满足 1lrP1 \leq l \leq r \leq P 的整数 llrr,持有者可以乘坐由公司 llrr 管理的路线。即,对于满足 1iM1 \leq i \leq M 的整数 ii,如果 lCirl \leq C_i \leq r,则可以乘坐路线 ii。同一张通票可以用于多条路线。我们将这种通票记为通票 (l,r)(l, r)

现在,编号为 11QQQQ 名游客来到拉巴斯。游客 jj (1jQ1 \leq j \leq Q) 拥有通票 (Lj,Rj)(L_j, R_j)XjX_j 博利维亚诺现金。

游客的目标是仅使用现有的通票所能乘坐的路线,使得从车站 11 出发可以到达所有其他车站。为此,游客 jj (1jQ1 \leq j \leq Q) 可以进行以下操作,但每个游客最多只能交换一次:

  1. 选择两个满足 1lrP1 \leq l' \leq r' \leq P 的整数 ll'rr'
  2. 用通票 (Lj,Rj)(L_j, R_j) 交换通票 (l,r)(l', r')。手续费为 Ljl+Rjr\left|L_j - l'\right| + \left|R_j - r'\right| 博利维亚诺。

你的任务是判断每个游客是否可以在其现金范围内实现目标。


输入格式

第一行包含三个用空格分隔的整数 N,M,PN, M, P

接下来 MM 行,每行包含三个用空格分隔的整数 Ai,Bi,CiA_i, B_i, C_i (1iM1\leq i\leq M)。

接下来一行包含一个整数 QQ

接下来 QQ 行,每行包含三个用空格分隔的整数 Lj,Rj,XjL_j, R_j, X_j (1jQ1\leq j\leq Q)。


输出格式

输出 QQ 行。对于每个游客,如果可以在其现金范围内实现目标,输出 Yes,否则输出 No


样例 1

输入

4 6 10
1 2 3
2 4 7
1 2 6
2 3 5
3 4 2
3 4 8
4
3 7 0
5 6 0
3 4 0
1 9 0

输出

Yes
No
No
Yes

首先,对于游客 11,初始持有通票 (3,7)(3,7)00 玻利维亚诺现金。通过不进行通票交换,可以达成目标。因为通票 (3,7)(3,7) 能乘坐的线路有 1,2,3,41,2,3,4 条。利用这 44 条线路,可以从车站 11 到达所有车站。

  • 使用线路 33,可以从车站 11 到车站 22
  • 使用线路 1144,可以从车站 1122 再到 33
  • 使用线路 3322,可以从车站 1122 再到 44

因此,输出 Yes

对于游客 22,初始持有通票 (5,6)(5,6)00 玻利维亚诺现金。不能达成目标。通票 (5,6)(5,6) 只能乘坐 3344 号线路,不能从车站 1144。因为只有 00 现金,不能进行通票交换。

因此,输出 No

对于游客 33,也不能达成目标。对于游客 44,可以达成目标。

这个样例满足所有子任务的限制。


样例 2

输入

4 6 10
1 2 3
2 4 7
1 2 6
2 3 5
3 4 2
3 4 8
3
5 6 10
3 4 1
7 8 3

输出

Yes
No
Yes

与样例 11 中线路相同。

首先,对于游客 11,初始持有通票 (5,6)(5,6)1010 玻利维亚诺现金。通过以下通票交换可以达成目标:

  • 选择 l=1,r=5l' = 1, r' = 5
  • 用通票 (5,6)(5,6) 交换通票 (1,5)(1,5),手续费为 51+65=5|5-1|+|6-5|=5 玻利维亚诺。

因此,输出 Yes

对于游客 22,初始持有通票 (3,4)(3,4)11 玻利维亚诺现金。无法通过任何通票交换达成目标。

因此,输出 No

对于游客 33,可以达成目标。

这个样例满足子任务 2,3,5,6,72,3,5,6,7 的限制。


样例 3

输入

3 1 1000000000
1 2 6
1
1 1000000000 1000000000

输出

No

在这个路线上,无法从车站 11 到达车站 33。因此,无论通票如何,游客都无法实现目标。

这个样例满足子任务 6,76,7 的限制。


样例 4

输入

5 9 2000
2 3 1814
2 3 457
1 2 1226
3 4 1354
1 5 1050
1 2 1725
2 3 1383
1 5 1626
1 4 1795
5
850 1872 128
82 428 1217
487 924 573
1639 1926 202
202 420 25

输出

Yes
Yes
Yes
Yes
No

这个样例满足子任务 5,6,75,6,7 的限制。


数据范围与提示

对于所有输入数据,满足:

  • 2N3000002 \leq N \leq 300000
  • 1M3000001 \leq M \leq 300000
  • 1P1091 \leq P \leq 10^9
  • 1Ai<BiN1 \leq A_i < B_i \leq N (1iM1 \leq i \leq M)。
  • 1CiP1 \leq C_i \leq P (1iM1 \leq i \leq M)。
  • 1Q4000001 \leq Q \leq 400000
  • 1LjRjP1 \leq L_j \leq R_j \leq P (1jQ1 \leq j \leq Q)。
  • 0Xj1090 \leq X_j \leq 10^9 (1jQ1 \leq j \leq Q)。
  • 输入的值均为整数。

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制
1 7 $N \leq 50, M \leq 50, Q \leq 50, X_j = 0\,(1 \leq j \leq Q)$
2 8 P10P \leq 10
3 11 P100P \leq 100
4 23 P300000,Xj=0(1jQ)P \leq 300000, X_j = 0\,(1 \leq j \leq Q)
5 9 P300000P \leq 300000
6 22 N8000,M8000N \leq 8000, M \leq 8000
7 20 无附加限制