BJWC2010 严格次小生成树
很简单,也很难想象这是北京省选的一道题。
就是个严格次小生成的板子啊。
所以就讲一下次小生成树吧。
注意,题面给的是 严格,所以就是一棵在无向图中,边权和最小的满足边权和 严格大于 最小生成树边权和的生成树(严谨定义)。
首先建出最小生成树,大家都会
然后讲一下非严格次小生成树:
- 定义:在无向图中,边权和最小的满足边权和 大于等于 最小生成树边权和的生成树
关于求解方法,我的描述有问题,后来想想还是用
求解方法
- 求出无向图的最小生成树
T ,设其权值和为M 。 - 遍历每条未被选中的边
edge=(u,v,w) ,找到T 中u 到v 路径上边权最大的一条边edge'=(s,t,w') ,则在T 中以e 替换e' ,可得一棵权值和为M'=M+w-w' 的生成树T' 。 - 对所有替换得到的答案
M' 取最小值即可
如何求u\to v 路径上的边权最大值呢?
我们可以使用倍增来维护,预处理出每个节点的
那么有人会问,
那么就要求严格的,相区别的就是一个是
那么解决方法很简单,我们维护到