
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 · 170 阅读 · 0 评论 -
BZOJ 1208 Splay伸展树
题目链接题意:一家宠物店可能会收到流浪宠物或者有顾客来领养一只宠物,每次收养会产生一种权值即顾客和宠物的权值差,求最终权值大小根据当前收集数据为宠物还是顾客一下情况:1.当输入一只宠物时,如果现在有想领养宠物的顾客等待,那么就选一个权值和宠物相差最小的顾客带走这只宠物,如果有相同的情况,让权值小的那个顾客带走宠物2.当输入一名顾客时,如果现在有流浪宠物待在宠物店中,那么就选一个...原创 2018-08-06 19:59:08 · 161 阅读 · 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 · 309 阅读 · 0 评论 -
BZOJ 3506 Splay伸展树
题目链接题意:一共i次操作,每次操作将[i,第i小数所在位置]翻转,输出n个数字,每次翻转操作前第i小数所在位置思路:Splay伸展树维护权值并维护区间最小值和区间最小值所在位置,进行区间查询最小值和翻转区间操作,Splay树完成区间操作是先通过Splay操作将L-1Splay到树根,那么此时树根的右子树里面维护就是[l,n],然后将R+1Splay操作到树根的右子树上,那么此时树...原创 2018-08-07 20:13:57 · 257 阅读 · 0 评论