注:使用这个算法你首先要会使用冰茶几 并查集
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
#define re register
#define inl inline
#define LL long long
const int MAXN=2e5+5;
struct deliver{
int x,y,w;
}mp[MAXN];
int n,m,fa[MAXN],mst,cnt;
bool my_comp(const deliver & p,const deliver & q)
{
return p.w<q.w;
}
inl int find_father(int x)
{
if(x!=fa[x]) fa[x]=find_father(fa[x]);
return fa[x];
}
int main()
{
scanf("%d%d",&n,&m);
for(re int i=1;i<=n;i++)
fa[i]=i;
for(re int i=1;i<=m;i++)
scanf("%d%d%d",&mp[i].x,&mp[i].y,&mp[i].w);
std::sort(mp+1,mp+m+1,my_comp);
for(re int i=1;i<=m;i++)
{
int f1=find_father(mp[i].x),f2=find_father(mp[i].y);
if(f1!=f2)
{
fa[f1]=f2;
mst+=mp[i].w;
cnt++;
if(cnt==n-1)
{
printf("%d\n",mst);
return 0;
}
}
}
printf("orz\n");
return 0;
}