P6136 【模板】普通平衡树(数据加强版) 题目描述 您需要写一种数据结构(可参考题目标题),来维护一些整数,其中需要提供以下操作: 插入一个整数 x。 删除一个整数 x(若有多个相同的数,只删除一个)。 查询整数 x 的排名(排名定义为比当前数小的数的个数 +1)。 查询排名为 x 的数(如果不存在,则认为是排名...
同学写的,短了很多啊,但是似乎我要快一点,我也不知道为什么,可能是因为直接insert的话,数据专门把树卡成链后,重建次数太多,导致要慢一点,而我直接sort快一些(大雾): for(registerinti =1; i <= n; i++){ x =read();insert(root , x); } 吐槽:这道题数据还是有点水吧,比较未加强数据的直接搬过来...
洛谷P6136 【模板】普通平衡树(数据加强版) 题目 https://www.luogu.com.cn/problem/P6136 思路 板子题,就贴个代码吧,如果需要讲解splay的话珂以评论。 PS:相同的数可以合并在一个树节点,这样求前驱/后继什么的可以排除相同数的干扰,也许也能节省一点时间。 代码 #include<cstdio>#include<cstdlib>#definemax...
1. 建立虚拟节点 -inf 与 inf 2. 每隔 10 次左右 splay 到根 3. 各种操作写递归版就行. code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55...
值得注意的是,这里代码中在数据集内多加入了一大( INF )一小( −1 )两个虚设端点作为平衡树的上下限( front,back),这样在实现查找、插入时可以避免越界,并能减少对于某些情况的特殊判断。 4|0参考代码 #include <bits/stdc++.h> #define N 1200005 #define EMPTY 0 #define INF INT_MAX #define ll lo...