题目大意:给4种操作I:添加一个员工工资信息A:增加所有员工的工资S:减少所有员工的工资F:询问工资第k高的员工的工资情况自己做的第一道splay树的题目,初学找找感觉 1 #include 2 #include 3 #include 4 5 using namespace std...
分类:
其他好文 时间:
2015-04-20 20:34:36
阅读次数:
172
这题号称是noi出过最变态的数据结构题,,感觉还差不多嘛。。一开始我一直在纠结splay上的节点一点要有一个key值的啊,要是以这个数在序列中的位置作为key值的话又要插入又要删除肯定弄不了。。然后想了很久突然顿悟。。貌似我给一个初始顺序以后是不用访问key的&&找第k位的数只要写一个findkth就行了嘛。。(当时太弱)
然后我就一口气写了下来。。
对每个节点维护size,sum,maxsu...
分类:
其他好文 时间:
2015-04-18 11:34:55
阅读次数:
144
题目链接:BZOJ - 1036题目分析这道题可以用树链剖分,块状树等多种方法解决,也可以使用 LCT。修改某个点的值时,先将它 Splay 到它所在的 Splay 的根,然后修改它的值,再将它 Update 一下。询问 x, y 两点之间的路径时,假设 x 是深度小的那一个,先 Access(x)...
分类:
其他好文 时间:
2015-04-16 21:16:51
阅读次数:
227
//http://www.lydsy.com/JudgeOnline/problem.php?id=1588//题意:每读入一个数,在前面输入的数中找到一个与该数相差最小的一个,把所有的差值绝对值加起来并输出 1 #include "bits/stdc++.h" 2 using namespac.....
分类:
其他好文 时间:
2015-04-15 21:25:43
阅读次数:
153
解题思路:终于把这道splay神题A掉了,splay专题也算是告一段落了,这个题主要的坑点,还是旋转和区间合并结合。解题代码: 1 // File Name: hysbz1500.cpp 2 // Author: darkdream 3 // Created Time: 2015年04月10日...
分类:
其他好文 时间:
2015-04-14 00:19:42
阅读次数:
361
Splay 离散化+Splay维护序列…… 好吧主要说一下我做这道题遇到的几个错误点: 1.离散化 2.由于找到的这个数的位置一定是大于等于 i 的,所以其实在把它splay到根以后,i 结点只能splay到它的左儿子,而不是右儿子……而且相应的,代表这个区间的应该是c[c[root][0]...
分类:
编程语言 时间:
2015-04-14 00:19:07
阅读次数:
218
伸展树是一种平衡二叉树。在伸展树上的一般操作都基于伸展操作:假设想要对一个二叉查找树执行一系列的查找操作,为了使整个查找时间更小,被查频率高的那些条目就应当经常处于靠近树根的位置。于是想到设计一个简单方法, 在每次查找之后对树进行重构,把被查找的条目搬移到离树根近一些的地方。伸展树应运而生。平衡二叉...
分类:
其他好文 时间:
2015-04-13 14:24:08
阅读次数:
127
树链剖分 简单来说就是数据结构在树上的应用。常用的为线段树splay等。(可现在splay还不会敲囧) 重链剖分: 将树上的边分成轻链和重链。 重边为每个节点到它子树最大的儿子的边,其余为轻边。 设(u,v)为轻边,则size(v)b then exit(a) else exit...
分类:
其他好文 时间:
2015-04-10 20:06:05
阅读次数:
139
Splay/二分/Hash 看了网上的题目关键字(都不用点进去看……我也是醉了)了解到做法= =那就上呗,前面做了好几道Splay的题就是为了练手搞这个的。 Hash判断字符串是否相同应该很好理解吧?>_>我就不细说了 二分这个相同前缀的长度应该也容易>_> 用Splay维护这个Hash值>...
分类:
其他好文 时间:
2015-04-10 19:52:20
阅读次数:
156
Splay Splay序列维护的模板题了……为了便于处理边界情况,我们可以先插入两个空格当作最左端和最右端,然后……其实本题主要考察的就是Build、splay和Findkth这三个操作,我们可以实现一个splay(x,s)操作,使x结点旋转到s结点的下方(如果s为0则x旋转到根),这样可以方便地....
分类:
其他好文 时间:
2015-04-10 13:25:21
阅读次数:
242