Splay树
芋智波佐助
菜鸟一只
展开
-
HDU 3436 Queue-jumpers Splay+离散化
有n个人从小到大排成一列,分别记为1,2...,m次询问,3种操作:1.把x这个人放到队首。2.求x这个人在哪个位置。3.求x这个位置是那个人。虽然最多有1亿个人,但是操作最多只有10w次,那就离散化,把连续一段没有出现过的数压缩成一个点,然后就是普通的Splay树了。#include #include #include using namespace std;原创 2016-07-12 09:32:50 · 303 阅读 · 0 评论 -
BZOJ 1208 宠物收养所 Splay树
Splay的简单应用,找和一个数最接近的数,例如找和x最接近的数,把x旋转到根,要么是左子树的最大值,要么是右子树的最小值。 #include #include #include #include using namespace std;typedef long long LL;const int mod = 1000000;const int maxn = 8原创 2016-07-12 09:32:50 · 329 阅读 · 0 评论 -
BZOJ 1056 排名系统 Splay
实现一颗名次树,提供如下操作上传一条新的得分记录、查询某个玩家的当前排名以及返回某个区段内的排名记录。splay的基本的插入删除操作,在加一个hash映射名字和得分,不过可能值会相同。可以给每个节点增加一个表示时间的域,如果值一样,就以时间为第二关键字继续在子树中递归查找。原创 2016-07-22 09:02:29 · 473 阅读 · 0 评论