Python使用Kruskal超时,求助
查看原帖
Python使用Kruskal超时,求助
364848
Bodhi楼主2024/6/22 19:26

RT

def findfa(x):
    if x == fa[x]:
        return x
    else:
        return findfa(fa[x])


def merge(x, y):
    fa[findfa(x)] = findfa(y)


n, m = map(int, input().split())
fa = [i for i in range(n + 1)]
edge = [tuple(map(int, input().split())) for _ in range(m)]
edge.sort(key=lambda x: x[2])
ans = 0
for e in edge:
    u = e[0]
    v = e[1]
    if findfa(u) != findfa(v):
        merge(u, v)
        ans += e[2]
print(ans)

记录

2024/6/22 19:26
加载中...