#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=5e3+5,maxm=2e5+5;
int n,m,e;
ll ans;
int fa[maxn];
int getfa(int x){return fa[x]==x?x:fa[x]=getfa(fa[x]);}
struct arr{
int x,y,z;
friend bool operator <(arr a,arr b){
return a.z<b.z;
}
}a[maxm];
inline void read(int &x){
x=0;
char ch=getchar();
int f=1;
while (!isdigit(ch)){if (ch=='-')f=-1;ch=getchar();}
while (isdigit(ch)){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();}
x*=f;
}
int main()
{
read(n);read(m);
for (int i=1;i<=m;i++)read(a[i].x),read(a[i].y),read(a[i].z);
for (int i=1;i<=n;i++)fa[i]=i;
sort(a+1,a+m+1);
for (int i=1;i<=m;i++){
int fx=getfa(a[i].x),fy=getfa(a[i].y);
if (e==n-1)break;
if (fx!=fy){
e++;
ans+=a[i].z;
fa[fy]=fx;//改成fa[fx]=fy就RE???
}
}
e!=n-1?puts("orz"):printf("%lld",ans);
return 0;
}
为什么呢?