![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树合并
EMber _
人但有追求,世界亦会让路。
展开
-
bzoj3702二叉树 线段树合并
二倍经验:2212. 很久以前就打了这题,现在回来填坑。。 这题的话是标准的线段树合并。 线段树合并的话,对于一些(大部分)情况,比启发式合并要好很多,时间复杂度少一个log,实现也简单。。 这题来说的话,就是直接合并两个子树,子树中的答案=左子树中的逆序对+右子树中的逆序对+跨越左右的逆序对,前两个扫一遍就可以统计了,问题是最后那个跨越左右子树的逆序对。 假设我们现在合并两颗子树,一颗的原创 2017-06-03 21:48:59 · 348 阅读 · 0 评论 -
bzoj4530[Bjoi2014]大融合 线段树合并+dfs序+并查集
题意比较明显就不说了。 这题我思考了一会儿,由于题解并不说清楚为什么这样处理的原因,我想了很久才想通= =。 建议看完理解题解以后不要看标,自己独立打出来,这题的思路很妙~。。首先很容易知道先把原树建出来以后,答案就是(size(fa)-size(x))*size(x) 那么问题是怎么样处理询问呢,当然你可以树剖暴力搞,因为我一开始也是这么想的,这里提供一种更优美的解法= = 我们把树建出来原创 2017-07-11 08:54:28 · 550 阅读 · 0 评论 -
bzoj3545[ONTAK2010]Peaks 线段树合并+离散
一开始以为是什么没见过的点分治姿势,后来发现不对,肯定要数据结构维护,那难道是树剖?不可能啊这怎么维护= =,在ymw大神的提醒下突然想到线段树合并= =。。 先离散,然后对每一个联通块建一颗线段树(动态开点),然后按照边的从小到大排序,询问也按照那个限制从小到大排序,然后离线,按照题目要求每次把小于当前限制的并查集合并一下,同时线段树合并,然后直接在线段树内寻找k大就可以了,如果区间内的数#in原创 2017-07-26 08:58:56 · 292 阅读 · 0 评论