关于lct维护动态生成树问题

水管局长数据加强版

题意是要求维护一棵最小生成树,支持删边操作。

删边操作比较难处理,因为如果删掉树上的边,

很难从已经有备选集合中找出连接不同联通块的最小的边。

然而题目并没有要求在线。 所以离线。

问题由删边转化为加边。

考虑加的每一条边:

如果两个点没有联通,直接联通。

如果两个点已经联通,那么两个点之间存在一条唯一路径。

加上当前边,会形成一个简单环。

找出这个简单环上的最大边权,删掉那一条边就可以了。

实际操作中并没有涉及到简单环,其实是查询两点之间的最大边权,并尝试用当前边替换最大边。

 

 

 

GERALD07加强版

一些求联通块问题,比较优秀的解法是:

形成生成树组成的森林,利用每棵树点数-边数=1的性质,答案为总点数-总边数。

本题的做法类似数颜色问题的主席树解法:

从编号为1的边开始尝试插入lct,

如果已经形成简单环,那么替换掉简单环上编号最靠前的边

并将该边的前趋设为替换的边,将前趋表示在主席树上。

每次询问,其实就是问:

n-区间中有多少用到的边,

后者查询主席树区间[l,r]内,权值小于l的就可以了。

转载于:https://www.cnblogs.com/skyh/p/11535590.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值