Splay 还是splay序列维护,这题我WA了的原因是:在Push_up的时候,当前子树的max我是直接取的L、R和v[x]的最大值,但是如果没有左/右儿子,默认是会访问0号结点的mx值,而这个值没有初始化成-INF,所以就会导致所有负max值全部变为0…… 1 /**************.....
分类:
其他好文 时间:
2015-04-10 13:19:38
阅读次数:
140
Splay Splay的模板题吧……妥妥的序列操作= =(好像有段时间没写过这种纯数据结构题了……) 1 /************************************************************** 2 Problem: 1503 3 Use...
分类:
其他好文 时间:
2015-04-10 01:10:31
阅读次数:
136
题意:3个炒作,1 插入一个(值,优先级) 2 找优先级最大的输出值并删除 3,找优先值最小的输出值并删除。解题思路:splay解题代码: 1 // File Name: poj3481.cpp 2 // Author: darkdream 3 // Created Time: 2015年04...
分类:
其他好文 时间:
2015-04-09 21:19:10
阅读次数:
153
题意:对序列取出连续的一段接到剩下的第k个值后面,或者把一段序列反转。解题思路:splay 区间操作。解题代码: 1 // File Name: hdu3487.cpp 2 // Author: darkdream 3 // Created Time: 2015年04月09日 星期四 10时1...
分类:
其他好文 时间:
2015-04-09 13:42:08
阅读次数:
132
题意:给你一串序列,不断的将一个数 取出来放在最前面,不断的询问 rank位 和 数的rank,解题思路:1)线段树 + 树状数组(需要离散化)2)Splay ,我把抽出来的建树,所以不是那么方便,可以离散化直接建树,这样会方便一点。解题代码: 1 // File Name: hdu3436.pb....
分类:
其他好文 时间:
2015-04-09 10:26:15
阅读次数:
213
回顾一下LCT,容易写错的地方: 1、每次断掉Splay中的边,必须update一下父亲节点,再根据具体情况是否splay父亲节点。 2、养成没有用的值(比如当pre[u]不为0时的pnt[u])不去乱修改的习惯。 1 /************************************...
分类:
其他好文 时间:
2015-04-06 21:31:27
阅读次数:
162
题意:给你一个序列,用机器排序,机器每一次旋转一个区间达到排序效果,问你每一需要旋转的位置。解题思路:splay 区间旋转。解题代码: 1 // File Name: hdu1890.1.cpp 2 // Author: darkdream 3 // Created Time: 2015年04...
分类:
其他好文 时间:
2015-04-06 15:31:00
阅读次数:
143
题目链接:点击打开链接
题意:
给出逆序数的值,求原序列(一个1-N的排列)
1, 2, 0, 1, 0 表示1的逆序数是1,2的逆序数是2,3的逆序数是0···
思路:
从最后一个数开始插,每次插到当前序列的第a[i]个数。。
splay模拟
== 这个方法比较直(wu)观(nao),别的方法并没有想出来。。
#include
#includ...
分类:
其他好文 时间:
2015-04-05 23:37:42
阅读次数:
550