测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A70730. 最短的通路时间

编程题 基础

题目描述

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

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

输入格式

1 行两个正整数 N,M

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

数据范围:

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

输出格式

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

输入输出样例

输入 #1
4 4
1 2 6
1 3 4
1 4 5
4 2 3
输出 #1
5

说明/提示

## 思路

用并查集维护连通:find 找根,unite 合并集合。

## 步骤

1. 初始化每个元素的父节点为自己。
2. 按操作合并或查询是否同根。
3. 输出题面要求的连通信息。