最小生成树-Kruskal

最小生成树-Kruskal

  • 将所有边按照边权升序排列

  • 依次考虑所有边,如果边的两端在不同联通块内,将该边加入生成树,合并联通块

  • 并查集维护每个点处于哪个连通块内

  • for(int i = 0;i<m;i++){
        int u = edge[i].u;
        int v = edge[i].v;
        int x = find(u);
        int y = find(v);
        if(u == v) continue;
        f[u] = v;
        cnt++;//记录数的边权
        add_edge(u,v,w);
        add_edge(v,u,w);
    }
    
posted @ 2022-02-12 08:07  Burnling  阅读(30)  评论(0编辑  收藏  举报