其他分享
首页 > 其他分享> > ZJOI2013 K大数查询

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,

标签:dl,大数,询问,mid,查询,ZJOI2013,区间,dr
来源: https://www.cnblogs.com/Andy-park/p/13771679.html