动态查询区间第 k 小:即边单点修改边查询区间第 k 小 。主席树查询区间第 k 小是基于前缀思想的,而树状数组可以很好的解决单点修改的前缀查询的问题。如何将这两者一起套用就是这个部分要学的。
算法学习
单点修改: 让树状数组的
l
o
g
n
logn
logn 棵主席树单点修改,时间复杂度:
O
(
l
o
g
2
n
)
O(log^2n)
O(log2n)
区间查询第 k 大: 区间
[
l
,
r
]
[l,r]
[l,r] 是由树状数组中的
l
o
g
n
logn
logn 棵主席树做差相减构成的。先记录这
l
o
g
n
logn
logn 根主席树的根,在二分求第 k 小时并行更新这
l
o
g
n
logn
logn 棵主席树的区间的根即可。
树状数组套主席树前言静态查询区间第 k 小:主席树即可动态查询区间第 k 小:即边单点修改边查询区间第 k 小 。主席树查询区间第 k 小是基于前缀思想的,而树状数组可以很好的解决单点修改的前缀查询的问题。如何将这两者一起套用就是这个部分要学的。算法学习单点修改: 让树状数组的 lognlognlogn 棵主席树单点修改,时间复杂度:O(n2)O(n^2)O(n2)区间查询第 k 大: 区间 [l,r][l,r][l,r] 是由树状数组中的 lognlognlogn 棵主席树做差相减构成的