随笔分类 -  树论——树剖(重链剖分)

摘要:I.CF487E Tourists 用这题作圆方树的入门题还是很合适的。 首先,先建出圆方树出来。我们可以给方点赋一个权值,即为它连着的所有圆点的权值的min。然后只需要在圆方树上查询路径min即可。使用树剖即可。 但这个做法会被叉掉:当原图是一张菊花图时,花心的圆点将会连向n1阅读全文
posted @ 2021-04-06 13:39 Troverld 阅读(43) 评论(0) 推荐(0) 编辑
摘要:III.II.[SDOI2016]游戏 明显,一条从 xy 的路径可以被拆作两条从LCA下来的路径,并且路径上每个点被写上的数是关于其深度的一次函数。 于是就树剖套李超树就行了。 但是有个问题,李超树不是只支持单点询问吗,怎么这里又支持区间了呢? 我们发现,对于一条线段,其与我 阅读全文
posted @ 2021-04-06 10:33 Troverld 阅读(63) 评论(0) 推荐(0) 编辑
摘要:XIII.CF226E Noble Knight's Path 这题分为在线和离线两种做法然而我只会在线 在线的思路很简单,即先树剖,然后建出主席树。主席树一维维护的是时间,每一棵主席树内部维护的是树剖剖出来的结果。 然后对于每一次询问: 首先先从两边跳链,找到LCA,并找出两点路径间没有被“亵渎” 阅读全文
posted @ 2021-04-02 16:18 Troverld 阅读(114) 评论(0) 推荐(0) 编辑
摘要:XII.小清新数据结构题 太 清 新 了 话说就我一个人看到这道题后兴冲冲的以为暴力LCT就能过然后发现LCT如果维护子树信息的话只有根节点处的信息是正确的吗(没错,就我一个) 闲话少说,正片开始。 法一:推一种式子,然后LCT/树剖维护 我们设valii节点的值,然后sumi为根 阅读全文
posted @ 2021-04-01 13:04 Troverld 阅读(71) 评论(0) 推荐(0) 编辑
摘要:VII.[HNOI2015]开店 首先,第一种方法便是动态点分治。 我们先考虑忽略年龄限制的情形。 我们考虑正常求一个点到另一个点的距离应该怎么求—— 一般来说,我们会用dis(i,j)=depi+depj2deplca(i,j)对吧? 这个东西相当于将路径划分成两个部分,其中每个 阅读全文
posted @ 2021-04-01 12:49 Troverld 阅读(62) 评论(0) 推荐(0) 编辑
摘要:XV.CF1073G Yet Another LCP Problem 这里记录一下我在思考本题时的一个感悟,即后缀数组与后缀自动机的等价性。 众所周知,SA时有一个常见思路就是针对 height 数组建一棵笛卡尔树。但是,该笛卡尔树,唯一等价于SA针对的串的反串的parent tree。具体可以分别 阅读全文
posted @ 2021-04-01 12:15 Troverld 阅读(76) 评论(0) 推荐(0) 编辑
摘要:XX.SP16549 QTREE6 - Query on a tree VI 本题LCT全方面爆破树剖——无论是复杂度、码量、思维难度、代码难度,全都碾压树剖。并且,LCT容易模板化,但是树剖不容易——树剖搭配的线段树因题而异,而LCT只需要把pushuppushdown稍微改改就可以直接 阅读全文
posted @ 2021-03-31 16:27 Troverld 阅读(65) 评论(0) 推荐(0) 编辑
摘要:CLIII.[SDOI2017]切树游戏 设 fx,0,i 表示 x 子树中,所有包含 x 且异或和为 i 的连通块数量,fx,1,i 表示 x 子树中异或和为 i 的连通块数量。显然,有公式 \(f_{x,1,i}=f_{x,0, 阅读全文
posted @ 2021-03-31 15:38 Troverld 阅读(65) 评论(0) 推荐(0) 编辑
摘要:CLII.【模板】"动态 DP"&动态树分治 裸的树上最大独立集怎么做?设 fx,0 表示在 x 子树中, x 不选的最大答案;fx,1 表示在 x 子树中,x 选的最大答案。则有 \(f_{x,0}=\sum\limits_{y\in\t 阅读全文
posted @ 2021-03-31 15:37 Troverld 阅读(52) 评论(0) 推荐(0) 编辑
摘要:CXXXI.[GYM102331J]Jiry Matchings 首先,不难想到一个 O(n2) 的树上背包:设 fi,0/1,j 表示在以 i 为根的子树内,其中 i 没有被匹配/被匹配了,且整个子树中共匹配了 j 条边的最优方案。考虑优化。 我们知 阅读全文
posted @ 2021-03-31 15:02 Troverld 阅读(319) 评论(1) 推荐(1) 编辑

点击右上角即可分享
微信分享提示