int cmp(node a,node b)
{
return a.w<b.w;
}
int find(int x)
{
return f[x]==x?x:f[x]=find(f[x]);
}
int join(int u,int v)
{
int x=find(u);
int y=find(v);
if(x!=y)
{
f[y]=x;
return 1;
}
return 0;
}
//krustra模板
sort(e,e+m,cmp);
for(i=1;i<=n;i++) //并查集
f[i]=i;
for(i=1;i<=m;i++)
{
if(join(e[i].u,e[i].v))
{
count++;
sum+=e[i].w;
}
if(count==n-1)
break;
}
模板_krustra最小生成树算法
最新推荐文章于 2022-11-12 16:41:18 发布