n = int(input())
m = int(input())
root = int(input()) - 1
edges = []
tree = []
max_weight = 0
union = [i for i in range(n)]
for i in range(m):
tmp = list( map(int, input().split()) )
tmp[0] = tmp[0] - 1
tmp[1] = tmp[1] - 1
edges.append( tmp )
edges.sort(key = lambda x:(x[2]) )
def findRoot(x):
if union[x] == x:
return x
else:
return findRoot(union[x])
for i in range(m):
edge = edges[i]
u = edge[0]
v = edge[1]
u_root = findRoot(u)
v_root = findRoot(v)
if u_root != v_root:
#连接
uv_max = max(u_root,v_root)
uv_min = min(u_root,v_root)
union[uv_min] = uv_max
tree.append(edge)
max_weight = max(max_weight, edge[2])
else:
continue
if len(tree) == n-1:
break
print(max_weight)
#print(tree)
201812-04 数据中心 (Python实现)
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 上一篇文章为:→5.1.10小练习 数据结构与算法(Python) Why? 我们举一个可能不太恰当的例子: 如果...