最小生成树各类题总结

本文总结了在解决最小生成树问题时遇到的各种类型题目,包括n^2条边的最小生成树,边权与边权函数的关系,分层图与有向边的处理,以及边在MST上可能性的讨论,结合网络流和虚树的应用,提供了多种解题思路和技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近遇到了很多不同的最小生成树套路

n^2条边的最小生成树

这类题主要利用边权的特殊性质,贪心的优化枚举过程
这种贪心必须严格基于MST的性质,不能想当然的猜!
主要应用:一个环上最大的边一定不再最小生成树上

tpye1 xor或者and为边权

按位贪心,可以发现这一位是0/1把点分成两个集合,而集合内或者集合间的边边权差异很大
or还没有想到好的做法,因为or在0/1和1/1间的边边权是一样的

type2 给出边权函数

例题
边权是:|i - j| *D + Ai + Aj
可以证明对于左边和右边的比Ax小的点,只需考虑取得最小值的y和x的连边。用不等式证明x和z的边会被(x,z),(x,y),(y,z)环替换掉
一开始我错误的认为只可能和i的左边和右边的最优解连边,但是这样是错误的
虽然这样n * 2条边可以保证图联通且包含每个点的最优出边,但是最优出边不一定被选为最小生成树!
最小生成树仅考虑每个点连出的权值最小的边是远远不够的,因为这样图会形成很多个联通块,i可能匹配j的同时,j也匹配i

分层图、有向边转化为无向边

2753: [SCOI2012]滑雪与时间胶囊
这道题就是典型的例子
最小树形图是n^2的
但是因为图按高度分层了,就可以按高度排序,层与层之间的边方向确定,同一高度的先做一遍MST缩起来

边在MST上的可能性问题

和网络流结合,一般求调整边权的最小代价

1937: [Shoi2004]Mst 最小生成树
直接把A当成S,B当成T,每条边的权值=max(0,w[i] - wAB + 1)。求最小割就可以了

这类题利用在最小生成树上则在任意环上改变不是最大边
好像还有几道经典题,暂时记不得题号了,待更新

和虚树结合,只考虑k个关键点

3206: [Apio2013]道路费用
这题不用虚树,直接把无关的点用并查集缩起来
然后暴力2^k枚举关键边的存在性,在新图上求MST,如果关键边和已知边成环则更新关键边的权值
因为边权不同,所以树的形态唯一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值