码迷,mamicode.com
首页 > 其他好文 > 详细

[Wc]Dface双面棋盘()

时间:2018-05-22 00:49:10      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:替换   并查集   nbsp   信息   size   线段树   需要   区间   nlogn   

题解:

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

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

发现不会

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

发现有2两种做法

1.lct维护

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

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

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

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

nlogn但是常数大吧

2.线段树分治

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

nlognlogn 常数小

 

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

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

正解:

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

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

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

每次合并是o(n)的

每次修改进行log次

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

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

明天补吧

[Wc]Dface双面棋盘()

标签:替换   并查集   nbsp   信息   size   线段树   需要   区间   nlogn   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!