[BZOJ3110][ZJOI2013]K大数查询 树套树/CDQ分治
树套树做法:
注意到权值很小,于是外层开权值线段树,内层是一个动态开点的区间线段树,维护权值在[L,R],位置在[l,r]的数一共有多少个。
修改就是内层的一个线段树上区间加一。
查询时,外层线段树中先判断左子树中够不够k个数,若够则往左子树递归,不够就减一下后往右子树。
代码(MLE):#include<iostream>
#include<cstdio>
using namespace
原创
2017-12-03 17:38:56 ·
310 阅读 ·
0 评论