#df1927. 最短的通路时间

最短的通路时间

最短的通路时间

题目描述

某市新规划了 N 个村庄(村庄编号为 1∼N),现准备在这 N 个村庄之间修建 M 条道路,每条公路的连着两个村庄。

已知这 M 条道路每条路连接了哪两个村庄,以及什么时候这条路能修好。请问:最早什么时候任意两个村庄能够通车,即最早什么时候任意两个村庄都存在至少一条修完的道路(两个村庄之间可能有多条路)。

输入格式

第 1 行两个正整数 N,M。

下面 M 行,每行 3 个正整数 x,y,t,告诉你这条公路连着 x,y 两个村庄,在时间 t 时能修完成这条公路。

输出格式

如果全部公路修完仍然存在两个村庄无法通车,则输出 −1,否则输出最早什么时候任意两个村庄能够通车。

样例输入 #1

4 4
1 2 6
1 3 4
1 4 5
4 2 3

样例输出 #1

5

数据范围

N≤1000,M≤100000,x≤N,y≤N,t≤100000。

知识点与难度

本题涉及的知识点:并查集、最小生成树(瓶颈)、贪心,难度等级:基础


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例 / 补充样例(-1 情形)
1 20 3~8 小规模 N≤8 / 特殊: 全同 t / 特殊: 大 t
2 15 9~11 Hack: 重边 / Hack: N=2 最小边界 / Hack: 链状结构
3 30 12~20 中规模 N≈100~500 / 大规模 N=1000, M=10^5 压力(含不连通)
4 25 21~25 随机 N=2~1000 回归(含 -1 情形)