克鲁斯卡尔

又是被吊打的一天.......

之前写过一遍最小生成树的,找不到了,再来一遍


 用最简单的话讲,克鲁斯卡尔就是并查集+sort 排序

在一个图里有很多的边连接很多个点,把这些边按照边权排个序

  最小生成树的是从小到大排序

  最大生成树(如果可以这么叫的话)是从大到小排序


 咱就以最小生成树为例子讲:

  选出当前最值的一条边$e_i$,$e_i$连接两个点$u,v$

  现在我们就来判断:

    A. 如果$u,v$都在集合$T_i$中,那就说明这两个点已经在一起了,不可以再取边重新连接它俩(如果再连接的话就变成环了)

    B. 如果它俩不同在同一个集合,那就取这条边

  就一直取边,期间用一个$cnt$记录一下加了多少条边,一直加边加到$cnt = n-1$


题目

  洛谷P2121 拆地毯:一道最“大”生成树

 

posted @ 2022-06-21 16:06  little_sheep_xiaoen  阅读(52)  评论(0编辑  收藏  举报