图论复习——最小生成树MST

知识点

  • MST的构造
    Boruvka算法常用于解决这类问题:给你n个点,每个点有点权,任意两个点之间有边权,边权为两个点权用过某种计算方式得出,求最小生成树。动图

  • MST上的确定性和存在性问题

  • 最小生成树的两个性质:
    (1) 不同的最小生成树中,每种权值的边出现的个数是确定的
    (2) 不同的生成树中,某一种权值的边连接完成后,形成的联通块状态是一样的
    可以用这两个性质做最小生成树计数

  • Kruskal重构树

  • a , b a,b a,b路径上最长边最短: “最短的最长边”一定在MST上,所以我们求一下MST,再在MST上找 a , b a,b a,b路径上的最长边。

  • n n n个点 m m m条边的无向连通图上任两点的最短距离, m − n m-n mn很小:随便建一棵生成树,把图看成树上挂几条边 CF1051F The Shortest Statement

  • trick: 对区间 [ l , r ] [l,r] [l,r]操作 ⇒ \Rightarrow 连边 l → r + 1 l\to r+1 lr+1

CF888G Xor-MST

在这里插入图片描述
Boruvka + 01Trie树

Boruvka算法简介:
对图中所有的点 i i i,找到 i i i连向其它点的最小边,如果这条边还没加进 M S T MST MST,就把它加上。执行完后,把每个连通块缩成点。
不断重复上面的操作,直到只剩下一个连通块。
时间复杂度 O ( ( m + n ) l o g n ) O((m+n)logn) O((m+n)logn)

此题中,要让 a i ⊕ a j a_i \oplus a_j aiaj最小,就让 a i , a j a_i,a_j ai,aj的高位尽量保持相等。
假设我们现在运行Boruvka,并且目前只剩两个连通块,那么设 p p p表示所有的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值