传送门
解题思路
若干平衡树,每次操作有两种,一是合并两个Splay,二是查询某一个点所在的平衡树里的第k小的点的编号。
首先用并查集维护某个点在哪个平衡树里,然后rt[i]记录编号为i的平衡树的根。
每次合并时启发式合并,直接把小的树的每个点暴力insert到大树里。
查询正常操作即可。
为了方便可以把原来普通平衡树的0节点,改为第i课树的0节点是i,然后其他点的编号都加n,方便操作。
AC代码
#include
#include
#include
#include
#include
#include
#include
#include