Splay操作总结

Splay中有一些常用的操作和一些很容易犯的bug先来记录一下容易写错的地方 新建结点(或者连续一段)或者删除结点(或者连续一段)的时候需要pushup(ch[root][1]),pushup(root) 申请一个新的结点的时候注意更新与这个点所有相关的变量,比如是维护最小值,不仅要更新val[n...

2016-08-26 21:31:17

阅读数 1827

评论数 0

Hdu 3436 Queue-jumpers(把第x个人放到队伍的前面,查询第x个人的位置,查询第x个位置是哪个人)

传送门:Hdu 3436 Queue-jumpers 题意:有一个n的序列(n<=1e8),有三操作,操作Q次 1.把第x个人放到队伍的前面 2.查询第x个人的位置 3.查询第x个位置是哪个人 思路:因为n比较大,Q比较小,所以选择记录一次啊出现了哪些数,Splay中每...

2016-08-26 20:45:58

阅读数 389

评论数 0

Hdu 4453 Looploop(环上的Splay操作)

传送门:Hdu 4453 Looploop 题意:给你序列(形成一个环),有六种操作 1.指定一个元素,这个元素之后的k2个元素加上x 2.指定一个元素,这个元素之后的k2个元素翻转 3.在指定元素的右端插入一个数 4.删除这个元素,然后把指针移到下一个 5.把指针...

2016-08-25 18:59:52

阅读数 206

评论数 0

Hdu 4441 Queue Sequence(给定一个数确定它在Splay中的下标)

传送门:Hdu 4441 Queue Sequence 题意:刚开始有一个空的序列,有三种操作 1.insert p 在p位置插入最小的未被使用的正整数,然后找到另外一个位置插入一个负数, 该负数左边负数的个数和该数的相反数的左边的正数的个数一样多且最为靠右 2.query x...

2016-08-25 18:41:20

阅读数 422

评论数 0

Hdu 3726 Graph and Queries(删边,查询第k大,修改点值)

传送门:[http://acm.split.hdu.edu.cn/showproblem.php?pid=3726](Hdu 3726 Graph and Queries) 题意:给你n个点,m条边,有下面三种操作 1:D X :删掉第X条边。 2:Q X K :查询和X相连的...

2016-08-25 14:20:50

阅读数 185

评论数 0

Hdu 1890 Robotic Sort(Spaly 区间翻转)

传送门:Hdu 1890 Robotic Sort 题意:给你一个序列,每次输出第i小的数所在的位置,并将i-这个位置之间的数翻转 思路:Splay的区间翻转,利用一个lazy标记,按下标的中序遍历建树,然后刚开始的每个a[i]都有一个对应的下标,把这个下标存下来, 然后对a[i]排序,...

2016-08-24 13:02:23

阅读数 373

评论数 0

Bzoj 1588: [HNOI2002]营业额统计(Splay 单点更新)

传送门:Bzoj 1588: [HNOI2002]营业额统计 题意:求每个点之前离它差最小的数(两个相减的绝对值) 思路:Splay模板 如果父结点是根结点,那么只需要作一次左旋或者右旋即可。 如果父结点P,P的父结点G,如果二者转向相同,那么连续两次左旋或者右旋即可。 如果...

2016-08-21 22:03:10

阅读数 173

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭