随笔分类 -  树分治-LCT

摘要:Luogu3348 [ZJOI2016]大森林 \(LCT\) 这道题初看十分恐怖,需要维护区间加叶子节点,区间修改生长节点,每棵树中加入叶子节点的位置可能不同,很难对于每棵树直接维护。 虽然每棵树都会产生大量信息,但是我们如果冷静分析一下,就会发现有许多信息是重复的。 我们先使问题简单化。 注意到 阅读全文
posted @ 2021-02-22 21:41 GK0328 阅读(69) 评论(0) 推荐(0)
摘要:Luogu4770 [NOI2018]你的名字 \(SAM+LCT\) $update2020.11.16:\(更新了一只\)\log$解法。 好歹自己切了一道字符串黑题,这几天字符串没白颓。 观察原问题,如果模式串不是区间形式的话,很容易想到一个做法,就是对于输入串每一个$r$位置,除去$r$所在 阅读全文
posted @ 2020-11-14 12:58 GK0328 阅读(60) 评论(0) 推荐(0)
摘要:Luogu6292 区间本质不同子串个数 \(SAM+LCT+Segment\_Tree\) 如果把一个子串看成一个元素,我们首先需要完成的是如何快速判断一个区间内的元素个数。 如果元素是数字,那么我们可以离线操作,枚举右端点$r$,同时不断更新每个元素出现的位置,也就是每当一个元素出现,我们把它在 阅读全文
posted @ 2020-11-11 19:47 GK0328 阅读(337) 评论(2) 推荐(0)
摘要:CF487E Tourists 圆方树 本题中,很容易考虑到建成圆方树,把所有点双内的节点最小值作为方点的权值,然后求链上最小值即可。 这样做的正确性显然,但是难以维护修改操作。 我们每次修改一个节点,都需要修改其相邻的方点,这样的复杂度是无法接受的。 我们考虑换一个方式,我们钦定一个叶子节点为圆方 阅读全文
posted @ 2020-11-04 10:58 GK0328 阅读(51) 评论(0) 推荐(0)
摘要:https://www.luogu.com.cn/problem/P4172 $LCT$动态维护最小生成树裸题,但是我用了指针版$LCT$,$RE$到飞起 考虑这道题是删边,我们可以改成加边进行操作,边权仍然可以按照套路链一个点当做边 为了防止访问空指针,我们可以把根节点的父亲指向一个结构体$rt$ 阅读全文
posted @ 2020-10-14 16:09 GK0328 阅读(90) 评论(0) 推荐(0)
摘要:参考 \(LCT\) $LCT$是由$Splay$进行维护的,其使用方式非常灵活,因此,要熟练运用$LCT$,必须对$Splay$的结构了如指掌 一些注意点: $1.$对于一个$Splay$来说,它维护的是一条链,$Splay$的根的父亲为这条链的父亲,而其他节点的父亲为$Splay$中的父亲,左儿 阅读全文
posted @ 2020-08-13 11:56 GK0328
摘要:https://www.luogu.com.cn/problem/P4332 \(LCT\) 可以发现,将叶子节点的$0$变为$1$,只会影响它上面输入值为$1$的一串祖先及第一个值不为$1$的节点$n1$;将叶子节点的$1$变为$0$,只会影响它上面输入值为$2$的一串祖先及第一个值不为$2$的节 阅读全文
posted @ 2020-08-11 09:11 GK0328 阅读(107) 评论(0) 推荐(0)
摘要:https://www.luogu.com.cn/problem/P1501 \(LCT\) 注意标记的下放,需要记住一个原则 当该节点被打上标记时,该节点的值需要同时更新 下放标记时直接传给儿子,这时已经不能更新自己了 采取边更新边下放的方式到处都是锅 #include<cstdio> #incl 阅读全文
posted @ 2020-08-10 16:50 GK0328 阅读(135) 评论(0) 推荐(0)
摘要:https://www.luogu.com.cn/problem/P3690 \(LCT\) $LCT$需要通过$Splay$来维护,每一个$Splay$对应的是原树的一条链,$Splay$中父子关系与原树不同 $Splay$节点除了标记以外,维护的有: $ch_0:$左儿子,代表原树中深度中深度比 阅读全文
posted @ 2020-08-10 08:40 GK0328 阅读(79) 评论(0) 推荐(0)