Splay树
maze_illusion
这个作者很懒,什么都没留下…
展开
-
BZOJ 1588 Splay伸展树
题目链接 题意: n个整数,第一个整数支付第一个整数大小的费用,其他数字支付与已有数字(比如:相对第i个数字的已有数字为前i-1个数字)中差值最小的费用(比如:已有数字1 5 10),当输入数字8时需要支付2的费用10-8=2 思路: Splay实现,将数值插入树中并将其提到树根,求前后驱,最后比较一下与前后驱的差值,取较小的那个 C++代码: #include<map>...原创 2018-08-03 18:33:30 · 145 阅读 · 0 评论 -
BZOJ 1208 Splay伸展树
题目链接 题意: 一家宠物店可能会收到流浪宠物或者有顾客来领养一只宠物,每次收养会产生一种权值即顾客和宠物的权值差,求最终权值大小 根据当前收集数据为宠物还是顾客一下情况: 1.当输入一只宠物时,如果现在有想领养宠物的顾客等待,那么就选一个权值和宠物相差最小的顾客带走这只宠物,如果有相同的情况,让权值小的那个顾客带走宠物 2.当输入一名顾客时,如果现在有流浪宠物待在宠物店中,那么就选一个...原创 2018-08-06 19:59:08 · 122 阅读 · 0 评论 -
BZOJ 1861 Splay伸展树
题目链接 题意: 一个书架有n本书,书本依次编号为1,2,。。。,n,初始有一个给定顺序从上到下摆放,有五种操作: Top x:将编号为x的书置于最顶上 Bottom x:将编号为x的书置于最底下 Insert x y:将编号为x的书置于x的原位置+y的位置 Ask x:询问编号为x的书上面有多少本书 Query x:询问第x本书的编号 思路: 使用Splay伸展树维护,但是维护...原创 2018-08-07 11:04:25 · 274 阅读 · 0 评论 -
BZOJ 3506 Splay伸展树
题目链接 题意: 一共i次操作,每次操作将[i,第i小数所在位置]翻转,输出n个数字,每次翻转操作前第i小数所在位置 思路: Splay伸展树维护权值并维护区间最小值和区间最小值所在位置,进行区间查询最小值和翻转区间操作,Splay树完成区间操作是先通过Splay操作将L-1Splay到树根,那么此时树根的右子树里面维护就是[l,n],然后将R+1Splay操作到树根的右子树上,那么此时树...原创 2018-08-07 20:13:57 · 205 阅读 · 0 评论