#P15604. [ICPC 2021 Jakarta R] Bicycle Tour
[ICPC 2021 Jakarta R] Bicycle Tour
说明
雅加达有 个路口(编号从 到 ),由 条双向道路连接,使得从任意路口出发,可以通过一条或多条道路到达任何其他路口。第 个路口的高度为 。
艾哈迈德喜欢骑自行车,尤其喜欢在平坦的道路上骑行。他认为,如果道路是上坡或下坡,则需要更大的力气。具体来说,在连接路口 和路口 的道路上骑行所需的力气为 。骑行一组道路所需的力气等于这些道路中所需力气的最大值。例如,有 条道路,骑行每条道路分别需要 、 和 的力气,则骑行所有这些道路所需的力气为 。
从路口 出发的骑行路线定义为一条始于路口 ,前往一个或多个其他路口,且不重复使用同一条道路,最后回到路口 的环游路线。
艾哈迈德希望为每个路口找到一条所需力气最小的骑行路线,这就是本题的任务。对于每个路口,你需要输出从该路口出发的、具有最小所需力气的骑行路线所需的力气。可能存在从某个路口无法形成骑行路线的情况;此时,对应路口的输出应为 。
例如,设 ,,,道路如下图所示。每个节点上的标签表示路口编号,每条边上的数字表示骑行该道路所需的力气。注意,每条道路所需的力气可由给定的 计算得出。
:::align{center}
:::
以下是从每个路口出发的具有最小所需力气的骑行路线:
- 路口 :$1 \rightarrow 2 \rightarrow 7 \rightarrow 6 \rightarrow 1$,所需力气为 。
- 路口 :$2 \rightarrow 1 \rightarrow 6 \rightarrow 7 \rightarrow 2$,所需力气为 。
- 路口 :,所需力气为 。
- 路口 :无法形成骑行路线。
- 路口 :$5 \rightarrow 3 \rightarrow 1 \rightarrow 2 \rightarrow 5$,所需力气为 。
- 路口 :,所需力气为 。
- 路口 :,所需力气为 。
- 路口 :,所需力气为 。
输入格式
输入第一行包含两个整数 和 (;),分别表示路口数量和双向道路数量。第二行包含 个整数 (),表示第 个路口的高度。接下来 行,每行包含两个整数 和 (),表示一条连接路口 和 的双向道路。保证从任意路口出发,可以通过一条或多条道路到达任何其他路口。同时保证对于任意一对路口 ,最多有一条双向道路连接它们。
输出格式
输出一行 个整数,每两个整数之间用一个空格隔开。第 个整数表示从路口 出发的具有最小所需力气的骑行路线所需的力气。如果从路口 无法形成骑行路线,则第 个整数为 。
8 11
5 2 7 0 10 6 6 6
1 2
1 3
2 3
2 4
2 5
2 7
3 5
1 6
6 7
6 8
7 8
4 4 5 -1 8 0 0 0
4 5
10 20 30 40
1 2
1 3
1 4
2 3
3 4
20 20 20 30
5 4
72 35 22 49 108
1 2
2 3
3 4
4 5
-1 -1 -1 -1 -1
提示
翻译由 DeepSeek 完成
京公网安备 11011102002149号