题目

长长的路上我想我们是朋友。

小J和小R是很好的朋友,他们也认识很多其他的朋友,我们可以认为每两个认识的人之间有一条相连的边,所有人之间的认识关系构成了一个巨大的网络。

小J:「我想每一对认识的人之间都可以用认识的时间来衡量他们的友谊重要性。」

小R:「那这个包含所有朋友认识关系的网络能不能抽象出一个最简联络树使得所有人都被关联在一起呢,我想找到符合这个要求,同时在这里面认识时间最长和最短的朋友之间的时间差值最小的联络树。」

小J:「让我想想……」

对上述问题做一个简化:给定一个关系网络,求它的一棵生成树,使得生成树中的最大边权与最小边权的差最小,输出其最小差值。

输入:第一行两个整数 n(2<n≤200),m(m≤5000),分别表示点数和边数。接下来 m 行,第 i+1 行包含三个整数 Xi(0<Xi≤n),Yi(0<Yi≤n),Di(0<Di≤108),表示有一条边连接 Xi 和 Yi,距离为 Di。保证关系网络是连通的,两个点之间最多只有一条边。
输出:包含一行,表示最小差值生成树的最大边与最小边的差值。

样例1:

输入

3 3
1 2 3
1 3 9
2 3 6

输出

3

样例2:

输入

3 3
1 2 10
1 3 20
2 3 30

输出

10

提示:对于 30% 的数据,保证 n,m≤10。对于 60% 的数据,保证 n,m≤1000。对于 100% 的数据,保证 n≤2000,m≤5000,0<Xi≤n,0<Yi≤n,0<Di≤108

思路

C++ · p55.cpp

复杂度分析

  • 时间复杂度:
  • 空间复杂度:
今日感受

← 返回菜鸟的coding