#L4775. 「JOI 2025 Final」我的缆车
「JOI 2025 Final」我的缆车
题目描述
题目译自 JOI 2025 Final T3 「ミ・テレフェリコ / Mi Teleférico」
玻利维亚的首都拉巴斯不仅是一个旅游胜地,还因其缆车网络「我的缆车(Mi Teleférico)」而闻名。你现在正在拉巴斯旅游,想尽可能参观更多的景点。让我们简化现实中的情况,考虑以下设置。
拉巴斯有 个缆车站,它们按海拔高度从低到高依次编号为 到 。此外,有 条单向缆车路线,编号为 到 。还有 家缆车公司,编号为 到 。每条路线由一家缆车公司管理。路线 () 从车站 到车站 运行,由公司 管理。路线总是从低海拔车站运行到高海拔车站,即 。
为了方便,拉巴斯交通局发行了通票。每张通票上有两个满足 的整数 和 ,持有者可以乘坐由公司 到 管理的路线。即,对于满足 的整数 ,如果 ,则可以乘坐路线 。同一张通票可以用于多条路线。我们将这种通票记为通票 。
现在,编号为 到 的 名游客来到拉巴斯。游客 () 拥有通票 和 博利维亚诺现金。
游客的目标是仅使用现有的通票所能乘坐的路线,使得从车站 出发可以到达所有其他车站。为此,游客 () 可以进行以下操作,但每个游客最多只能交换一次:
- 选择两个满足 的整数 和 。
- 用通票 交换通票 。手续费为 博利维亚诺。
你的任务是判断每个游客是否可以在其现金范围内实现目标。
输入格式
第一行包含三个用空格分隔的整数 。
接下来 行,每行包含三个用空格分隔的整数 ()。
接下来一行包含一个整数 。
接下来 行,每行包含三个用空格分隔的整数 ()。
输出格式
输出 行。对于每个游客,如果可以在其现金范围内实现目标,输出 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
首先,对于游客 ,初始持有通票 和 玻利维亚诺现金。通过不进行通票交换,可以达成目标。因为通票 能乘坐的线路有 条。利用这 条线路,可以从车站 到达所有车站。
- 使用线路 ,可以从车站 到车站 。
- 使用线路 和 ,可以从车站 到 再到 。
- 使用线路 和 ,可以从车站 到 再到 。
因此,输出 Yes。
对于游客 ,初始持有通票 和 玻利维亚诺现金。不能达成目标。通票 只能乘坐 和 号线路,不能从车站 到 。因为只有 现金,不能进行通票交换。
因此,输出 No。
对于游客 ,也不能达成目标。对于游客 ,可以达成目标。
这个样例满足所有子任务的限制。
样例 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
与样例 中线路相同。
首先,对于游客 ,初始持有通票 和 玻利维亚诺现金。通过以下通票交换可以达成目标:
- 选择 。
- 用通票 交换通票 ,手续费为 玻利维亚诺。
因此,输出 Yes。
对于游客 ,初始持有通票 和 玻利维亚诺现金。无法通过任何通票交换达成目标。
因此,输出 No。
对于游客 ,可以达成目标。
这个样例满足子任务 的限制。
样例 3
输入
3 1 1000000000
1 2 6
1
1 1000000000 1000000000
输出
No
在这个路线上,无法从车站 到达车站 。因此,无论通票如何,游客都无法实现目标。
这个样例满足子任务 的限制。
样例 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
这个样例满足子任务 的限制。
数据范围与提示
对于所有输入数据,满足:
- 。
- 。
- 。
- ()。
- ()。
- 。
- ()。
- ()。
- 输入的值均为整数。
详细子任务附加限制及分值如下表所示。
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| 1 | 7 | $N \leq 50, M \leq 50, Q \leq 50, X_j = 0\,(1 \leq j \leq Q)$ |
| 2 | 8 | |
| 3 | 11 | |
| 4 | 23 | |
| 5 | 9 | |
| 6 | 22 | |
| 7 | 20 | 无附加限制 |