Kruskal最小生成树

Posted hanasaki

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kruskal最小生成树相关的知识,希望对你有一定的参考价值。

贪心+并查集

struct edge 
    int from, to, dist;
    bool operator < (const edge &ths) const 
        return dist < ths.dist;
    
e[N];

int find(int k) 
    return f[k] == k ? k : f[k] = find(f[k]);


int main() 
    int ans = 0;
    for(int i = 0; i < n; i++) scanf("%d%d%d", &e[i].from, &e[i].to, &e[i].dist);
    sort(e, e + n);
    for(int i = 0; i < n; i++) 
        if(find(e[i].from) != find(e[i].to)) 
            f[find(e[i].from)] = find(e[i].to);
            ans += e[i].dist;
        
    

 

以上是关于Kruskal最小生成树的主要内容,如果未能解决你的问题,请参考以下文章