首页 > 其他 > 详细

[Wc]Dface双面棋盘()

时间:2018-05-22 00:20:39      阅读:169      评论:0      收藏:0      [点我收藏+]

题解:

一道维护奇怪信息的线段树。。。

我刚开始看了标签想的是删去图上一个点后求连通性

发现不会

于是退化成一般图支持删除 插入 维护连通性

发现有2两种做法

1.lct维护

按照结束顺序先后排序,给每条边一个权值

然后我们只要维护最大生成树就好了,因为这样可以保证删除当前树上的边是不会被权值更小的边替换的

而由于最大生成树的性质,是不可能能替换成更大的边的

so这说明删除它之后就不需要连边了

nlogn但是常数大吧

2.线段树分治

这个应该很明显吧,变成只有插入的并查集问题

nlognlogn 常数小

 

然后由于这个牵扯出loj122这题 维护动态图连通性

并没有看懂网上的唯一一篇题解于是弃疗

正解:

线段树上的每个叶子节点表示一行

每个节点维护当前范围内的黑白区间个数

合并的时候就用并查集启发式合并就可以

每次合并是o(n)的

每次修改进行log次

所以复杂度应该是O(nmlogn)

相比上面两种都不优吧 但是常数小了至少8倍  因为这个是单点修改上面的要修改8条边

明天补吧

[Wc]Dface双面棋盘()

原文:https://www.cnblogs.com/yinwuxiao/p/9070055.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!