随笔分类 - LCT
摘要:多次询问求一个串的结尾在$[l,r]$之间的本质不同子串个数。 此题是求一个区间的不同元素的问题,使用扫描线的方法解决,即每次加入一个元素就将这个位置$+1$,这个元素上一次出现的位置$-1$。 考虑使用$SAM$解决。 其实就是将所有结尾在$[l,r]$的前缀代表的节点与parent树的根的路径上
阅读全文
摘要:解决本题分为两个部分:维护树的直径,合并多个树的直径 树的直径有如下性质: 1,从任一点出发,到达最远的点是直径的其中一端,从这一点出发可以到达最远的点是直径的另一端。或者说一棵树中距离某一点最远的点一定是直径的一端。 2,由1,两个树通过一条边连接形成的新的树的直径是两棵树直径4个端点的两两组合之
阅读全文
摘要:喜闻乐见的LCT+SAM 此题要求动态插入,直接上后缀树。然后询问其实就是求一个节点的子树后缀结束节点的个数。 因为建立后缀树需要插入和删除,就直接上LCT。每次加入一个点,把它到根的路径加一 ~~(现在我才知道access之后那个splay就是这个点到根的路径,LCT学得不好)~~ 思路不需要说太
阅读全文
摘要:LCT,虚实链剖分。支持连边和断边操作。Tarjan制造。 [HNOI2010]弹飞绵羊 当然这题分块可以做,常数小,但是LCT更无脑。 建立一个虚拟的弹飞节点$n+1$,初始化时对于一个点假如再弹一次就弹飞了,连n+1,否则连弹到的点。维护一个$size$查询就直接split找size就行了。修改
阅读全文