卧薪尝胆,厚积薄发。
TREECNT
Date: Tue Feb 26 10:49:45 CST 2019 In Category: NoCategory

Description:

维护一个大根堆 $Treap$ ,要求支持:插入一个给定关键字、给定权值的点,删除关键字为 $k$ 的点,求关键字为 $x$ 和 $y$ 的点在树上的距离。
$1\leqslant n\leqslant 2\times 10^5$

Solution:

$Treap$ 相当于是一棵笛卡尔树,我们可以用一棵线段树维护 $Treap$ 的中序遍历,然后插入和删除都可以直接在线段树上插入关键字,观察一下就会发现,两个点最终的距离就是小的那个一边的单调栈长度和两个点之间的单调栈长度,于是用线段树维护单调栈即可。

Code:


没有代码
Copyright © 2020 wjh15101051
ღゝ◡╹)ノ♡