[那些你所不知道的鬼畜写法]数据结构小探
我有种要出系列的节奏?
这次记一下我所遇到过的数据结构一些神奇的维护方法: (只是记一下而已,也许会仔细讲讲)
1.差分大法
出自 zkw 大神 《统计的力量——线段树全接触》,运用面虽然不广,但每次用出来威力都是相当大
机智的减少你的代码量
2.保存操作而不是值
出自 clj 大神 在 WC 上对可追溯数据结构的论文(跪跪跪跪),虽然 OI 中应该(?)不会用到吗,但是思路还是很好的
只保存操作在很多时候效果非凡,以时间为权值维护一棵 splay 或是别的支持区间操作的平衡树,然后不但支持可持久化,而且在过去修改也不要紧嘛
另外,你从此和离散化说再见了喵~
代码看我上一篇博客 http://www.cnblogs.com/dyllalala/p/3903364.html 吧
3.标记永久化
这是适用于线段树的写法,但是用好的话也是有奇效,从此不用担心多标记,从此不写 pushdown() 甚至连 maintain() 都不写了?
但是如果你的 splay 什么的不是分裂合并式的话……旋转时把永久化的标记转移一下也不要紧嘛~ 不过你的旋转和插入都会很蛋疼,很蛋疼……
4.vEB
具体看算导,不过真心没什么用。它的思路是很好的,我们也可以如法炮制的搞出一个深度为 O(lglgn) 的伪线段树出来
修改与查询代码量似乎也就是线段树的两倍。但是蛋疼的建树,蛋疼的空间,额,你确定你真的想去写?
5.待续
……