主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4893这个问题还真是纠结啊……好久不写线段树的题了。由于这几天学伸展树。然后认为线段树小case了。没想到栽在这题上了。尼玛……自己把自己给搞晕了……想复杂了。都不懂得预处理一下,唉……还得怒刷几十道啊!...
分类:
其他好文 时间:
2015-09-11 09:12:21
阅读次数:
215
题意:给出一个公司每一天的营业额,求每天的最小波动值之和。该天的最小波动值= min { 绝对值| 该天以前某一天的营业额-该天的营业额 | }。第一天的最小波动值就是其自己。思路:Splay伸展树的入门题,仅有splay,insert,rotate这三个主要的函数而已。 将一个数字(营业额)插入....
分类:
其他好文 时间:
2015-08-20 12:39:25
阅读次数:
197
题意:一排灯光有亮有暗,每个灯光有一个数值; 五种操作: Q L R ss 求[L,R]区间中状态为ss的灯光的gcd; I i value ss 在第i个灯光后插入一个数值为value状态为ss的灯光; D i 将第i个灯光删除; R i 改变第i个灯光的状态; M i x...
分类:
其他好文 时间:
2015-08-17 15:26:45
阅读次数:
107
ACM 所有算法
数据结构
栈,队列,链表
哈希表,哈希数组
堆,优先队列
双端队列
可并堆
左偏堆
二叉查找树
Treap
伸展树
并查集
集合计数问题
二分图的识别
平衡二叉树
二叉排序树
线段树
一维线段树
二维线段树
树状数组
一维树状数组
N维树状数组
字典树
后缀数组,后缀树
块状链表
哈夫曼树
桶,跳跃表...
分类:
编程语言 时间:
2015-08-11 16:13:16
阅读次数:
357
题目大意一个数列,每次操作可以是将某区间数字都加上一个相同的整数,也可以是询问一个区间中所有数字的和。(这里区间指的是数列中连续的若干个数)对每次询问给出结果。思路1. 伸展树的一般规律对于区间的查找更新操作,可以考虑使用伸展树、线段树等数据结构。这里使用伸展树来解决。伸展树对数组进行维护的核心思想...
分类:
其他好文 时间:
2015-08-09 00:11:47
阅读次数:
278
自己伸展树做的第一个题poj 3580 supermemo.题目大意对一个数组进行维护,包含如下几个操作:ADD x, y, d 在 A[x]--A[y] 中的每个数都增加dREVERSE x, y 将 A[x]--A[y] 中的数进行反转,变为 A[y],A[y-1]....A[x+1],A[x]...
分类:
其他好文 时间:
2015-08-08 21:17:37
阅读次数:
102
有关论文:运用伸展树解决数列维护问题算法合集之《伸展树的基本操作与应用》splay的伸展操作 splay(x,goal)将x节点移到goal节点的下方,通过左旋和右旋基本操作实现,其实现过程在论文中有详细介绍。对于用splay去维护一个数列,有以下常用操作。1.splay(x,goal) 将结点k旋...
分类:
其他好文 时间:
2015-08-07 23:45:03
阅读次数:
209
题目大意一个数列,每次操作可以是将某区间数字都加上一个相同的整数,也可以是询问一个区间中所有数字的和。(这里区间指的是数列中连续的若干个数)对每次询问给出结果。思路对于区间的查找更新操作,可以考虑使用伸展树、线段树等数据结构。这里使用线段树来解决。需要注意的是,对于一个区间的增加操作,如果每次都走到...
分类:
其他好文 时间:
2015-08-06 14:52:01
阅读次数:
97
伸展树(Splay Tree)树平衡二叉查找树的一种,具有二叉查找树的所有性质。在性能上又比普通的二叉查找树有所改进:普通的二叉查找树在最坏情况下的查找操作的时间复杂度为O(n)(当二叉树退化成一条链的时候),而伸展树在任何情况下的平摊时间复杂度均为 O(log2n).特性和普通的二叉查找树相比,具...
分类:
其他好文 时间:
2015-08-06 00:09:06
阅读次数:
258
本来要看LCT的,确发现自己弱得连splay都忘记了,复习一发,顺便重写一发
关键点:
1. 伸展树为左小右大的二叉树,所以旋转操作不会影响树的性质
2. 区间操作为:
int u = select(L - 1), v = select(R + 1);
splay(u, 0); splay(v, u);
//通过旋转操作把询问的区间聚集到根的右子树的左子树下
因为伸展树为左小右大...
分类:
其他好文 时间:
2015-08-05 16:23:19
阅读次数:
162