import heapq from collections import deque n, m = map(int, input().split()) arr = [deque() for _ inrange(n+1)] # 每个点的边权和下一点.其实可以不用deque queue = []
for i inrange(m): u, v, w = map(int, input().split()) arr[u].append((w, v)) # 1到n arr[v].append((w, u))
last = n-1 u=1 vis = [False]*(n+1) vis[1]=True
ans=0 for p in arr[u]: heapq.heappush(queue,p) while queue: while vis[u] and queue: w,u=heapq.heappop(queue) if vis[u]: break ans+=w vis[u]=True last-=1 ifnot last: break while arr[u]: w,v=arr[u].pop() ifnot vis[v]: heapq.heappush(queue,(w,v)) ifnot last: print(ans) else: print('orz')
import heapq n, m = map(int, input().split()) arr = [] last = n-1 for i inrange(m): u, v, w = map(int, input().split()) arr.append((w, u, v))
classDsu: def__init__(self, n): self.n = n self.parent = [i for i inrange(0, n+1)] self.size = [1]*(n+1)
deffind(self, a): if a != self.parent[a]: self.parent[a] = self.find(self.parent[a]) returnself.parent[a]
defunion(self, a, b): pa = self.find(a) pb = self.find(b) if pa == pb: return ifself.size[a] < self.size[b]: a, b = b, a self.parent[pb] = pa self.size[pa] += self.size[pb]
dsu = Dsu(n) heapq.heapify(arr) ans = 0
while arr: w, u, v = heapq.heappop(arr) if dsu.find(u) == dsu.find(v): continue ans += w dsu.union(u,v) last-=1 if last==0: break ifnot last: print('orz') else: print(ans)