摘要:
给出一段序列,每次修改某个数的值和询问区间第 k 小。$(1\le n,m\le 10^5,0\le a_i\le10^9)$ "Luogu" 分析 动态主席树裸题。 树状数组套主席树,树状数组的每个结点相当于一棵主席树,每次修改操作只在对应树状数组的 logn 个结点所对应的主席树上修改,查询时, 阅读全文
posted @ 2020-02-03 23:15
小蒟蒻hlw
阅读(80)
评论(0)
推荐(0)
摘要:
主席树,即可持久化线段树,它是在权值线段树的基础上,记录了每个历史版本,从而可以方便快速的处理一些区间问题,最经典的应用有查询区间第 k 小。 当然,如果我们直接每次修改开一棵线段树,空间复杂度太大,肯定不行。但我们可以发现每次修改都只会改变一个结点的值,对于线段树来说,也就是只会有左儿子或者右儿子 阅读全文
posted @ 2020-02-03 20:30
小蒟蒻hlw
阅读(109)
评论(0)
推荐(0)
摘要:
众所周知, BST 的操作复杂度是 $O(\log n)$ ,但 BST 可能会退化成一条链,于是我们可以使用平衡树。 平衡树有很多种,但我还只会三种(我太菜了):Treap,Splay,fhq Treap Treap Treap 记录了一个优先级,并在满足构成 BST 的同时,会按照优先级的大小来 阅读全文
posted @ 2020-02-03 17:14
小蒟蒻hlw
阅读(168)
评论(0)
推荐(0)
摘要:
BST 是 Treap 的基础。 "这位大佬写的不错" 只写一点基本操作方便自己理解。 性质:左儿子 = k) { if (!tr[o].ls) return ans; else return pre(tr[o].ls, k, ans); } else { if (!tr[o].rs) { if ( 阅读全文
posted @ 2020-02-03 01:25
小蒟蒻hlw
阅读(215)
评论(0)
推荐(0)

浙公网安备 33010602011771号