ZJOI2013 K大数查询

题目链接

Solution

首先另 L = -n, R = n,那么 mid = (L + R) >> 1.考虑对于 mid 把所有操作(修改 / 查询)分为两类:dl 和 dr,使得两部分互不干扰。

对于查询操作:

如果 c > mid,说明该询问的答案应该 < mid,因此把当前询问分入 dl 区间;

否则,说明 mid 这个值出现在右侧,说明当前询问的答案应该 >= mid,因此把当前询问放入 dr 区间。

对于修改操作:

考虑维护一个线段树,表示 [l,r] 区间有多少个数 > mid

如果 c <= mid,

上一篇:P3333 [ZJOI2013]丽洁体


下一篇:Luogu P3336 [ZJOI2013]话旧