From: Ir1dXD Date: Sat, 3 Nov 2018 05:54:02 +0000 (+0800) Subject: Update persistent-in-seg.md X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=97aa33eb1d97eacda5cc76706f5ad9257e91eb92;p=oi-wiki%2Fmain.git Update persistent-in-seg.md --- diff --git a/docs/ds/persistent-in-seg.md b/docs/ds/persistent-in-seg.md index 53c46347..245ecd15 100644 --- a/docs/ds/persistent-in-seg.md +++ b/docs/ds/persistent-in-seg.md @@ -6,7 +6,7 @@ ??? note " 例题 [洛谷 P2617 Dynamic Rankings](https://www.luogu.org/problemnew/show/P2617)" -如果用 [线段树套平衡树](https://oi-wiki.org/ds/balanced-in-seg/) 中所论述的,用线段树套平衡树,即对于线段树的每一个节点,对于其所表示的区间维护一个平衡树,然后用二分来查找 $k$ 小值。由于每次查询操作都要覆盖多个区间,即有多个节点,但是平衡树并不能多个值一起查找,所以时间复杂度是 $O(n\log_2^3 n)$ ,并不是最优的。 +如果用 [线段树套平衡树](/ds/balanced-in-seg/) 中所论述的,用线段树套平衡树,即对于线段树的每一个节点,对于其所表示的区间维护一个平衡树,然后用二分来查找 $k$ 小值。由于每次查询操作都要覆盖多个区间,即有多个节点,但是平衡树并不能多个值一起查找,所以时间复杂度是 $O(n\log_2^3 n)$ ,并不是最优的。 思路是,把二分答案的操作和查询小于一个值的数的数量两种操作结合起来。最好的方法是使用 ** 线段树套主席树 ** 。