摘要: link Splay维护序列的一个较为高级的实例,其它没什么,调得挺顺利的也没什么好说的,除了脑残一下wa#3以外其它都还好。需要告诫后人的是一定要注意摒弃那两个哨兵点,不然会死得很惨。 #include<cstdio> //#define zczc const int N=500010; inli 阅读全文
posted @ 2022-02-12 15:47 Feyn618 阅读(27) 评论(0) 推荐(0) 编辑
摘要: link 平衡树(特别是Splay)维护序列的模板题。之前实在是我傻了调了那么久…… 首先明确几个概念,正是这几个概念的模糊导致了我对算法理解的不清晰和极其蹩脚的调试过程。 会考虑维护一棵平衡树,它的中序遍历就是原序列。区间操作是基于对子树的整体操作的,假如有一个针对$[l,r]$的修改或查询,考虑 阅读全文
posted @ 2022-02-12 13:57 Feyn618 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 我很开心,我终于大概搞明白Splay的写法了。归根到底还是因为我太弱了。 Splay和Treap差不多,都是通过一系列奇怪旋转保证树的平衡。但Splay的逻辑简单一点,把每次访问的节点旋转到树根,相当于是给树来了一次重组。写法上很奇怪,和我习惯有很大的出入,比如把zig和zag并到一起,以及用whi 阅读全文
posted @ 2022-02-12 10:44 Feyn618 阅读(53) 评论(0) 推荐(0) 编辑