rt
#include<iostream>
#include<algorithm>
using namespace std;
struct world{
int start,number,end;
}a[100005];
int f[5005];
int n,m;
int ans;
bool cmp(world a,world b)
{
return a.number<b.number;
}
int find(int x)
{
if(f[x]!=x)
f[x]=find(f[x]);
else
return x;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
cin>>a[i].start>>a[i].number>>a[i].end;
for(int i=1;i<=n;i++)
f[i]=i;
sort(a+1,a+m+1,cmp);
for(int i=1;i<n;i++)
{
int xx=find(a[i].start);
int yy=find(a[i].end);
if(xx==yy)
continue;
ans+=a[i].number;
f[xx]=yy;
}
cout<<ans;
return 0;
}
第二次循环的时候xx会变成6086656
然而x是1
……