题意:给定一个数列,维护:1、在a和b之间插入c 2、询问[a,b]中的第c大 题解: 权值线段树套区间线段树 外层的权值线段树中每个节点如果维护[L,R]这个区间,那么该节点所对应的线段树维护的就是[L,R]这些数在每个区间里出现了几次,也就是说如果外层线段树的某个节点维护[L,R],其所对应的内 ...
分类:
其他好文 时间:
2017-02-26 15:25:38
阅读次数:
233
题解:
外层权值线段树,内层区间线段树可解。
权值都是1~n,就不用离散化了。
我写了标记永久化。
其它心得神马的:
天生对树形数据结构无爱。
第一次写树套树,终于知道是怎么回事了。
(只针对本题)
就是外层每个点都表示了一段权值,
而它同时还是一颗线段树,
线段树里面记录了这段权值的出现区间、次数等等。
然后每次插入的时候
都是暴力地把该权值所在的...
分类:
其他好文 时间:
2015-01-22 18:22:20
阅读次数:
199
题目大意:有一些位置,这些位置上可以放若干个数字。现在有两种操作。
1.在区间l到r上添加一个数字x
2.求出l到r上的第k大的数字是什么
思路:这种题一看就是树套树,关键是怎么套,怎么写。(话说我也不会来着。。)最容易想到的方法就是区间线段树套一个权值线段树,但是区间线段树上的标记就会变得异常复杂。所以我们就反过来套,用权值线段树套区间线段树。这样修改操作在外线段树上就变成了单点修...
分类:
其他好文 时间:
2014-10-09 16:50:48
阅读次数:
239