TLE3个点的代码,没办法,python循环太慢了。
#克鲁斯卡尔
global n,m
global side
global parent
def find(x):
while parent[x]!=-1:
x=parent[x]
return x
def kruskal():
ans=0
#找到n-1条边就退出循环
count=0
for i in range(m):
u,v,w=side[i][0],side[i][1],side[i][2]
fa,fb=find(u),find(v)
if fa!=fb:
parent[fa]=fb
ans+=w
count+=1
if count==n-1:
break
if count!=n-1:
return -1
else:
return ans
n,m=map(int,input().split())
side=[[] for _ in range(m)]
parent=[-1 for _ in range(n+1)]
for i in range(m):
x,y,z=map(int,input().split())
side[i]+=[x,y,z]
side.sort(key=lambda x:x[2])
ans=kruskal()
if ans==-1:
print("orz")
else:
print(ans)