A3174 「JOI 2025 Final」我的缆车

暂无评定 传统题 JOI(日本) 上传者
时间限制2000ms
内存限制1024MiB
通过 / 提交0/0

A3174「JOI 2025 Final」我的缆车

暂无评定 传统题 JOI(日本) 上传者
时间限制2000ms
内存限制1024MiB
通过 / 提交0/0

题目描述

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

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

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

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

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

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

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

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

输入格式

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

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

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

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

输出格式

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

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。
  • 使用线路 11 和 44,可以从车站 11 到 22 再到 33。
  • 使用线路 33 和 22,可以从车站 11 到 22 再到 44。

因此,输出 Yes。

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

因此,输出 No。

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

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

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

与样例 1 中线路相同。

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

  1. 选择 l′=1,r′=5l' = 1, r' = 5。
  2. 用通票 (5,6)(5,6) 交换通票 (1,5)(1,5),手续费为 ∣5−1∣+∣6−5∣=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 1 1000000000
1 2 6
1
1 1000000000 1000000000

No

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

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

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 的限制。

数据范围与提示

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

  • 2≤N≤3000002 \leq N \leq 300000。
  • 1≤M≤3000001 \leq M \leq 300000。
  • 1≤P≤1091 \leq P \leq 10^9。
  • 1≤Ai<Bi≤N1 \leq A_i < B_i \leq N (1≤i≤M)(1 \leq i \leq M)。
  • 1≤Ci≤P1 \leq C_i \leq P (1≤i≤M)(1 \leq i \leq M)。
  • 1≤Q≤4000001 \leq Q \leq 400000。
  • 1≤Lj≤Rj≤P1 \leq L_j \leq R_j \leq P (1≤j≤Q)(1 \leq j \leq Q)。
  • 0≤Xj≤1090 \leq X_j \leq 10^9 (1≤j≤Q)(1 \leq j \leq Q)。
  • 输入的值均为整数。

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

子任务 分值 附加限制
11 77 $N \leq 50, M \leq 50, Q \leq 50, X_j = 0\,(1 \leq j \leq Q)$
22 88 P≤10P \leq 10
33 1111 P≤100P \leq 100
44 2323 P≤300000,Xj=0 (1≤j≤Q)P \leq 300000, X_j = 0\,(1 \leq j \leq Q)
55 99 P≤300000P \leq 300000
66 2222 N≤8000,M≤8000N \leq 8000, M \leq 8000
77 2020 无附加限制