本文章纯属自娱自乐,有什么错误欢迎指出,只求轻喷……
很久以前在众多神犇的鄙视下找到了论文和代码啃了起来
由于要准备期末考试于是没有多少时间看但又突然不用期末考试了于是就开始看了唔好像扯得有点远而且一口气读完一长串没有标点符号的句子一定会比很累吧所以就不多扯了
首先是AAA树和top tree和self-adjust top tree到底哪个是哪个的问题= =
找到了杜教、翱犇和将狼踩尽的代码……(将狼踩尽没有3153的代码,但有类似的其他代码)
由于太弱花了3天时间才人脑fc完了代码……
得出的结论是……
三位神犇写的是一个东西==
杜教叫它(伪)Toptree
翱犇叫它AAA树
将狼踩尽也叫它AAA树
本着少数服从多数的原则就叫它AAA树吧……(唔,你问我题目为什么不是AAA树?因为感觉用toptree作标题比较好骗访问量……)
baidu和Google都搜不到的东西感觉有点虚……
不过最后还是找到了出处(我没有仔细读,如果错了的话就无视这一句吧= =||)
关于toptree和self-adjusttoptree的问题,Tarjan的这篇论文讲的比较详细
{
从前Sleator和Tarjan是好基友,一起发明了ST-tree(就是LCT)
后来解决动态树问题的数据结构如雨后春笋冒了出来
其中Frederickson发明了topology tree,能同时做子树和链的操作
但是菊花图可以卡==
再后来Alstrup带领众神犇改进topology tree为top tree,菊花图卡不掉喽
Tarjan觉得这么叼的东西竟然不是我发明的非常不爽
于是抛弃了Sleator找了新基友Werneck
一块黑toptree难写又难调
然后说用我发明的Splay来写toptree,好写又好调
就叫它self-adjustingtop tree了
}
花了不少时间仔细读完发现AAA树不是Tarjan所讲的self-adjustingtop tree
虽然有非常多的相似处
但也有很多不同,比如说AAA树的外层的LCT与SATT的外层compresstree不同
2015-03-02 upd:
以前一直没有看到过国家集训队2014的论文……没有发现翱犇早就已经讲过了……要是早发现我就不看英文的了……不过我还是坚持认为AAA树不是toptree,这两种数据结构给人的感觉就像是维护静态序列的平衡树和线段树一样……虽然作用一样,实现相似,但是是不同的东西
Q:SATT能做的AAA树能做吗?
A:能
那不就完了吗,反正作用都是一样的……
所以下面讲的就是AAA树了
翱犇讲的已经非常清楚了,我来重写一遍骗访问量 - -|
==============================正片开始=======================================
预备知识:Link-CutTree
本教程不包教包会,看不懂的话……去o