首页 > TAG信息列表 > P3332

P3332 - K大数查询 题解

好像是经典题(?),那就写一波题解罢。 BIT 套动态开点线段树 考虑查询,集合里的元素每个有两个指标:所在集合编号和自身权值,那么查询容易想到二分,二分的 chk 其实就是个二维数点。是动态的(实际上这个修改比动态加点强),二分的 chk 这玩意可以看作半在线,就暂时考虑在线动态维护二维数点了吧

洛谷P3332 K大数查询

整体二分模板题 如果没有修改的询问区间第k小or大,一般把原始值看成赋值操作,这样可以把询问和赋值同时二分,正确性显然。 如果是单点修改,同样可以用树状数组赋值,修改一个数看-1再+1,因为每次增加和修改是成对出现的且二分不改变询问和修改的顺序,所以显然二分也是正确的。 区间插入的

P3332 [ZJOI2013]K大数查询(线段树套线段树+标记永久化)

P3332 [ZJOI2013]K大数查询 权值线段树套区间线段树 把插入的值离散化一下开个线段树 蓝后每个节点开个线段树,维护一下每个数出现的区间和次数 为了防止MLE动态开点就好辣 重点是标记永久化,就是不下传标记,而是每次询问时算上路径上的标记 标记永久化后快了1倍 #include<iostream>#