随笔分类 - 树----LCT
摘要:吉老师天下第一! 感觉这个题大概能算我见过的最神仙的数据结构题? 首先考虑把答案拆到每一个点上,即去计算每一个点会被贡献多少次。 显然,对于一个点来说,只有它子树内的崛起可能会在它这里产生贡献。 具体一点,如果它子树内部连续崛起的两个点属于两个不同的儿子,那么贡献+1。 那么就转化为这样找一个问题。
阅读全文
摘要:考虑到路径是有向的,不是很好维护。 如果路径无向的话,可以直接转化为链加和查询操作。 既然有向的话,不妨考虑一波hash。 对于一组询问x,y,可以把树划分为两颗子树。 合法显然需要满足 x子树的起点的hash=y子树的终点的hash x子树的终点的hash=y子树的起点的hash 直接用LCT维护
阅读全文
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=2555 想一下sam求子串出现次数的方法基本就能得到正解。 由于子串出现次数是一个子树和的形式。 动态插入字符串又要求动态维护树的结构,显然要用LCT。 注意一下LCT维护子树和的写法即可。 cpp
阅读全文
摘要:这个题目很明显在暗示你要用泰勒展开。 直接套上去泰勒展开的式子,精度的话保留12项左右即可。 分别维护每一项的和,可能比较难写吧。 然后强行套一个LCT就没了。
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P3721 手玩一下即可AC此题。 结论:插入x后,x要么会成为x的前驱的右儿子,要么成为x的后继的左儿子,这取决于它的前驱和后继的深度。 证明:首先可以证明的是,x的前驱和后继一定存在祖先与后代的关系,因为如果不存在
阅读全文