[NOI 2005] 维修数列: Splay

维护一个数列, 支持6种操作: 区间插入, 区间删除, 区间赋值, 区间翻转, 区间求和, 求和最大的连续子列. (插入数字的总数不超过4*10^6, 任何时刻数列中最多含5*10^5个数, 任何一个数字均在[-1000, 1000]内, 操作数不超过20000)

Read More

一种紧凑的线段树存储方法

发现马老师的线段树只用两倍空间, 他说这是 <高级数据结构> 上介绍的一种奇妙的方法. 这种方法用很小的代价实时计算出线段对应的编号, 相比堆式存储, 可以省掉一个参数. 空间紧凑了, 寻址的时间缩短, 程序也跑得更快了.

秉承着 "让常数优化成为一种习惯" -_-b 学习一下, 顺便对这种方法的正确性给个证明. <高级数据结构> 上写的是错的......

Read More