struct node{
int a, b, len;
}e[N];
// n 为点数 m为边数
sort( e + 1 , e + 1 + m , cmp);
for(int i = 1;i <= n;i ++)
pre[i] = i;
int res = 0, ans = 0;
for(int i = 1;i <= m;i ++)
{
int fx = find(e[i].a), fy = find(e[i].b);
if(fx != fy)
{
res ++;
ans += e[i].len;
pre[fx] = fy;
}
}
if(res == n - 1) return ans;
else return -1;
最小生成树kruskal算法模板
最新推荐文章于 2022-02-28 14:53:46 发布