
Kruskal
小元勋
生生不息 摸鱼不止
展开
-
构造完全图--并查集+Kruskal思想
Loj 10067 题目分析: 要使完全图G的最小生成树为唯一T,我们按照Kruskal思想将边从小到大排序,然后依次加 一条边连接两边的集合,由于完全图每两个点之间都有边,则对于x和yx和yx和y这两个集合需要的边数为cnt[x]∗cnt[y]cnt[x]*cnt[y]cnt[x]∗cnt[y],由于我们要找最小完全图,并且图G的最小生成树为T,那么:则需要一条边必须为树T的边,则新建边的数...原创 2019-07-16 20:13:46 · 258 阅读 · 0 评论 -
[国家集训队2]Tree 1--二分+Kruskal
Loj 10069 题目分析: 很容易想到将边排序后先选白边,选完后又选黑边,但这个贪心是错误的,因为白边的选择会影响黑边的选择,再影响总的选择 二分一个xxx,将xxx加在白边的权值上,因为Kruskal是通过边权从小到大贪心,这样我们就可以控制选择的白边的数量 注意:如果在你的二分过程中如果给白边加上mid,你得到的白边数比need大。给白边加上mid+1,你得到的白边比need小。这种情...原创 2019-07-17 10:51:03 · 140 阅读 · 0 评论 -
走廊泼水节--kruskal+并查集
ACwing 348 题目分析: 对于一个完全图,每两个节点之间都有边相连 考虑kruskalkruskalkruskal的过程,对于集合xxx和yyy,将其连成完全图,并且最小生成树是原树,那么要加的边的权值为(cnt[x]∗cnt[y]−1)∗(w+1)(cnt[x]*cnt[y]-1)*(w+1)(cnt[x]∗cnt[y]−1)∗(w+1) Code: #include <bi...原创 2019-07-29 16:40:12 · 149 阅读 · 0 评论 -
最小生成树计数--Kruskal+搜索
Loj 10070 Luogu 4208 题目分析: 不同的最小生成树中相应权值边的个数是相等的 先跑一遍KruskalKruskalKruskal,将相同权值的边放在一个块里,并且统计在最小生成树中有当前权值的边多少条 dfsdfsdfs统计答案,对于每一种权值的边,遍历每个块中的边,选或不选,若选入的边等于最小生成树中该权值边的条数,++sum++sum++sum,再根据乘法原理统计答案 ...原创 2019-07-30 20:13:52 · 260 阅读 · 0 评论