非初学者可看,我自己的小技巧总结罢了
以下内容均为我按照适合我的脑回路的逻辑顺序进行总结的,看的难受出门右拐详解大把没必要杠我哈:)
并查集压缩路径+寻找fa
路径压缩就是把自己与自己的father从父子关系变为同级关系
并查集自己为 root 时
合并
krustra核心思想:
把目前未选的边中连接了最小生成树中没有的点的最短边选上
每加入一条边就将两边的一点作为另外一点的father形成并查集
查找两点是否连通可用并查集看两点的father是否相同(顺便进行路径压缩(fa[a]=find(fa[a])));
总而言之:
顺带一提两个最小生成树算法的区别:
krustra:排序边,选边
prime:加一个点就加一堆边,用堆排序选最小无环边