题目名称 3930. [CSP 2023J]旅游巴士
输入输出 bus.in/out
难度等级 ★★☆
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试数据 20
题目来源 Gravatarsyzhaoss 于2023-10-22加入
开放分组 全部用户
提交状态
分类标签
分层图
分享题解
通过:8, 提交:55, 通过率:14.55%
Gravatarsyzhaoss 100 0.247 s 6.12 MiB C++
Gravatar健康铀 100 1.567 s 7.42 MiB C++
Gravatar嗨嗨嗨 100 1.610 s 7.29 MiB C++
Gravatarwhaleeee 100 1.665 s 8.29 MiB C++
Gravatarpztl 100 1.760 s 7.76 MiB C++
Gravatarxiaoququ 100 2.404 s 38.85 MiB C++
Gravatar1nclude 100 4.892 s 5.05 MiB C++
Gravatar1nclude 100 6.435 s 5.17 MiB C++
Gravatar嗨嗨嗨 80 0.498 s 42.97 MiB C++
Gravatar嗨嗨嗨 80 0.571 s 29.76 MiB C++
关于 旅游巴士 的近10条评论(全部评论)
三年oi一场空,不开long long 见祖宗
Gravatar王和谐
2023-10-30 21:20 4楼
byd这题过不了了是吧
Gravatar在大街上倒立游泳
2023-10-26 20:47 3楼
卑鄙bus
Gravatarwhaleeee
2023-10-24 20:43 2楼
#感谢教练#顶峰相见#沉淀三年#一场longlong毁了我的oi梦#中专开局又如何
Gravatar健康铀
2023-10-24 20:35 1楼

3930. [CSP 2023J]旅游巴士

★★☆   输入文件:bus.in   输出文件:bus.out   简单对比
时间限制:1 s   内存限制:512 MiB

【题目描述】

小 Z 打算在国庆假期期间搭乘旅游巴士去一处他向往已久的景点旅游。

旅游景点的地图共有 $n$ 处地点,在这些地点之间连有 $m$ 条道路。其中 $1$ 号地点为景区入口,$n$ 号地点为景区出口。我们把一天当中景区开门营业的时间记为 $0$ 时刻,则从 $0$ 时刻起,每间隔 $k$ 单位时间便有一辆旅游巴士到达景区入口,同时有一辆旅游巴士从景区出口驶离景区。

所有道路均只能单向通行。对于每条道路,游客步行通过的用时均为恰好 $1$ 单位时间。

小 Z 希望乘坐旅游巴士到达景区入口,并沿着自己选择的任意路径走到景区出口,再乘坐旅游巴士离开,这意味着他到达和离开景区的时间都必须是 $k$ 的非负整数倍。由于节假日客流众多,小 Z 在旅游巴士离开景区前只想一直沿着景区道路移动,而不想在任何地点(包括景区入口和出口)或者道路上停留。

出发前,小 Z 忽然得知:景区采取了限制客流的方法,对于每条道路均设置了一个 “开放时间”$a _ i$,游客只有不早于 $a _ i$ 时刻才能通过这条道路。

请帮助小 Z 设计一个旅游方案,使得他乘坐旅游巴士离开景区的时间尽量地早。

【输入格式】

输入的第一行包含 3 个正整数 $n, m, k$,表示旅游景点的地点数、道路数,以及旅游巴士的发车间隔。

输入的接下来 $m$ 行,每行包含 3 个非负整数 $u _ i, v _ i, a_ i$,表示第 $i$ 条道路从地点 $u _ i$ 出发,到达地点 $v _ i$,道路的“开放时间”为 $a _ i$。

【输出格式】

输出一行,仅包含一个整数,表示小 Z 最早乘坐旅游巴士离开景区的时刻。如果不存在符合要求的旅游方案,输出 -1

【样例输入1】

5 5 3
1 2 0
2 5 1
1 3 0
3 4 3
4 5 1

【样例输出1】

6

【样例 #1 解释】

小 Z 可以在 $3$ 时刻到达景区入口,沿 $1 \to 3 \to 4 \to 5$ 的顺序走到景区出口,并在 $6$ 时刻离开。

【样例 #2】

见附件中的 bus/bus2.inbus/bus2.ans

【数据范围】

对于所有测试数据有:$2 \leq n \leq 10 ^ 4$,$1 \leq m \leq 2 \times 10 ^ 4$,$1 \leq k \leq 100$,$1 \leq u _ i, v _ i \leq n$,$0 \leq a _ i \leq 10 ^ 6$。