![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树链剖分
文章平均质量分 75
逍遥Fau
为伊蕾娜献上心脏!
展开
-
2022东北四省赛 F. Tree Path (树剖 + 线段树维护堆)
题目链接: Tree Path大致题意给定一棵有nnn个节点的树, 其中有kkk条有权路径(保证不同路径边权互不相同), 有mmm次如下操作:0: 删除树中权值最小的路径1 x: 询问树中删除x节点后, 剩余连通边权中的最小值.解题思路相似题目参考本题的查询操作, 属于上题的强制在线版本, 因此我们可以用上题中类似的方式实现.推荐大家先去做上面这道题, 题解思路都详细一些. 做完后再回来看这道题, 你会发现处理手段几乎是一模一样的.首先我们考虑查询操作, 我们需要每次对删除节点x后的连通原创 2022-05-25 16:21:44 · 406 阅读 · 1 评论 -
P3250 [HNOI2016] 网络 (树剖 + 线段树维护堆)
题目链接: P3250 [HNOI2016] 网络大致题意给定一棵有nnn个节点的树, 有mmm次如下操作:0 a b c 表示在(a,b)(a, b)(a,b)的最短路径上增加一条重要度为ccc的边.1 t 表示删除第ttt次操作所增加的边2 x 表示节点xxx出现故障. 此时需要回答, 所有不经过xxx节点的边中最大的重要度.解题思路首先我们考虑查询操作, 我们需要每次对删除节点x后的连通路径上的最大边权.但本题我们可以把边权直接等价变为点权. 因此可以把查询操作变成查询最大点权.进原创 2022-05-25 15:44:03 · 356 阅读 · 0 评论 -
P3250 [HNOI2016]网络 (整体二分 + 树上差分)
题目链接: P3250 [HNOI2016]网络大致题意给定一棵有nnn个节点的树, 有mmm次如下操作:0 a b c 表示在(a,b)(a, b)(a,b)的最短路径上增加一条重要度为ccc的边.1 t 表示删除第ttt次操作所增加的边2 x 表示节点xxx出现故障. 此时需要回答, 所有不经过xxx节点的边中最大的重要度.解题思路整体二分我们考虑到二分答案, 假设当前二分值为midmidmid, 我们把所有allallall条≥mid\ge mid≥mid的边加入, 判断对于xxx节点原创 2021-11-22 20:41:51 · 193 阅读 · 0 评论 -
P4175 [CTSC2008]网络管理 (动态树上第k大)
题目链接: P4175 [CTSC2008]网络管理大致题意给定一棵有nnn个节点的树, 节点上有权值wiw_iwi. 有mmm次操作.0 a b 表示把节点aaa的权值修改为bbb. 即: wa=bw_a = bwa=bk a b 查询(a,b)(a, b)(a,b)最短路径上, 第kkk大的值.解题思路➡️静态树上第kkk小⬅️点这里如果没有做过这个题的静态版本, ⬆️推荐博客⬆️. 下文讲解也会基于上述博客.很多静态树上第kkk小的做法也都适用于本题, 可以参考上述博客, 本文只原创 2021-11-20 18:38:13 · 377 阅读 · 0 评论 -
SPOJ-COT Count on a tree (静态树上第k小) 精讲
题目链接: Count on a tree大致题意给定一棵有nnn个节点的树, 节点上有权值wiw_iwi. 有mmm次询问, 每次询问(a,b)(a, b)(a,b)最短路径上, 第kkk小的权值是多少.解题思路思路一: 树链剖分 + 主席树 + 树外二分/树内二分 复杂度: O(mlog3n)O(mlog^3n)O(mlog3n) / O(mlog2n)O(mlog^2n)O(mlog2n)这是一个静态树上路径求第kkk小的问题, 如果是在序列上, 我们不难想到用主席树可以做到O(logn原创 2021-11-20 14:13:13 · 657 阅读 · 0 评论 -
HDU4718 The LCIS on the Tree (树链剖分 线段树区间合并)
题目链接: The LCIS on the Tree大致题意给定一棵有nnn个节点的树, 有mmm次询问, 每次询问(a,b)(a, b)(a,b)两点间的最短路径上的最长连续严格递增子序列.解题思路➡️题目弱化版点这里⬅️如果你没有做过序列上的LCIS, 推荐先做一下题目的弱化版树链剖分我们通过树剖将树上路径问题转化为一段段区间问题. 而难点在于树链与树链间的合并.由于树链上的区间是有方向的, 当我们最后合并两条链时, 我们需要将左链翻转, 如果在树中仅维护LCIS的信息, 我们是无法得原创 2021-11-10 14:21:48 · 344 阅读 · 0 评论 -
HDU6962 I love tree (树链剖分)
题目链接: I love tree大致题意给定一棵有nnn个节点的树, 初始树中的各个节点权值为000. 有mmm次如下操作:1 a b给(a,b)(a, b)(a,b)路径加上一个平方数列1,4,9,...1, 4, 9, ...1,4,9,...2 x询问编号为xxx的点的权值.解题思路树链剖分我们首先考虑对于一个序列加平方数列的操作.我们发现就是 ➡️这个题⬅️我们考虑对于树链上的操作: 比较容易想到可以通过树剖把树上问题转化为区间问题.由于树链上的编号是一段一段的, 并不连续,原创 2021-11-07 16:49:01 · 142 阅读 · 3 评论 -
SP6779 GSS7 - Can you answer these queries VII (树链剖分 树链信息合并)
题目链接: SP6779 GSS7 - Can you answer these queries VII大致题意给定一棵有nnn个节点的树, 每个节点上有权值wi(∣wi∣≤10000)w_i(|w_i| \le 10000)wi(∣wi∣≤10000). 有mmm次操作:1 a b 查询(a,b)(a, b)(a,b)路径上的最大连续子段和.2 a b c把(a,b)(a, b)(a,b)路径上的所有点权修改为ccc.解题思路树链剖分我们考虑如果这不是一个树上问题, 而是对序列进行操作.原创 2021-11-05 15:21:26 · 165 阅读 · 2 评论 -
P1505 [国家集训队]旅游 (树链剖分)
题目链接: P1505 [国家集训队]旅游大致题意给定一棵nnn个节点的树, 边带权, 编号 000 ~ n−1n - 1n−1, 需要支持五种操作:C i w 将输入的第iii条边权值改为wwwN u v 将u,vu, vu,v节点之间的边权都变为相反数SUM u v 询问u,vu, vu,v节点之间边权和MAX u v 询问u,vu, vu,v节点之间边权最大值MIN u v 询问u,vu, vu,v节点之间边权最小值保证任意时刻所有边的权值都在 [−1000,1000][-1000,原创 2021-11-05 14:51:55 · 143 阅读 · 0 评论 -
P3401 洛谷树 (树链剖分) 好题
题目链接: P3401 洛谷树大致题意给定一棵有nnn个节点的树, 每条边有边权wiw_iwi. 有mmm次如下操作:1 a b 询问a,ba, ba,b路径上, 所有子路径边权异或和的和.2 a b c把(a,b)(a, b)(a,b)这条边的权值修改为ccc.特别的, 每一时刻树中边权均∈[0,1023]\in[0, 1023]∈[0,1023]解题思路思维首先对于树上问题, 我们考虑化为序列问题求解.我们发现并不好在10进制下处理出所有区间异或和. 因此考虑拆位.到此, 我原创 2021-11-03 16:58:11 · 366 阅读 · 0 评论 -
P5838 [USACO19DEC]Milk Visits G (树链剖分 + 主席树)
题目链接: P5838 [USACO19DEC]Milk Visits G大致题意给定一棵有nnn个节点的树, 每个节点有权值wiw_iwi, 有mmm次询问:a b c 询问a,ba, ba,b路径上是否有wi==cw_i == cwi==c的节点.解题思路树链剖分 + 主席树我们首先考虑如果不是树上路径问题, 而是询问[l,r][l, r][l,r]区间中, 是否有wi==cw_i == cwi==c的点.我们可以采用可持久化线段树来实现.对于树上路径问题, 我们加上树链剖分即可.原创 2021-11-02 19:20:53 · 136 阅读 · 0 评论 -
P3979 遥远的国度 (树链剖分)
题目链接: P3979 遥远的国度大致题意给定一棵有nnn个节点的树, 根节点为rootrootroot, 有如下三种操作:1 rt 把根节点修改为rtrtrt. (即: root=rtroot = rtroot=rt)2 a b c把a,ba, ba,b两点间的所有点的权值修改为ccc.3 x 查询以rootrootroot为根时, xxx子树中的最小值解题思路树链剖分我们如果考虑没有换根操作, 本题实质上就是路径修改 + 子树查询, 我们直接套树链剖分板子即可.考虑到多了一个换根操作,原创 2021-11-02 19:05:14 · 113 阅读 · 0 评论 -
P4374 [USACO18OPEN]Disruption P (树链剖分)
题目链接: P4374 [USACO18OPEN]Disruption P大致题意给定一棵有nnn个节点的树(有n−1n - 1n−1条边), 再给出mmm条额外边.问: 当删除第iii条原树中的边时, 为使得树仍然联通, 需要补充的最小的额外边的边权是多少. (若不存在则输出-1)解题思路思维我们考虑到, 由于原树中有n−1n - 1n−1条边, 那么我每条额外边的加入, 都会在原树中形成一个环.对于一个环而言, 我删掉环中的任意一条边, 环内的点必然仍然连通.因此相当于, 第iii条连接原创 2021-11-02 18:49:46 · 91 阅读 · 0 评论 -
P2486 染色 (树链剖分)
题目链接: P2486 染色大致题意给定一棵nnn个节点的无根树,共有mmm个操作,操作分为两种:将节点aaa到节点bbb径上的所有点(包括aaa和bbb) 都染成颜色ccc。询问节点aaa到节点bbb的路径上的颜色段数量。颜色段的定义是极长的连续相同颜色被认为是一段。例如 112221 由三段组成:11、222、1。解题思路树链剖分首先我们考虑如何在一段序列上实现上述操作.我们发现只需要线段树 + 区间合并即可实现.但本题是树上操作, 我们考虑采用树剖. 把树上路径转化为区间进行操作原创 2021-11-02 18:32:51 · 160 阅读 · 0 评论 -
P4315 月下“毛景树” (树链剖分)
题目链接: P4315 月下“毛景树”大致题意给定一棵由nnn个节点的树, 由n−1n - 1n−1带权边构成.有如下444种操作:Change k c: 把第kkk条边的边权改为ccc.Cover a b c把节点aaa和节点bbb之间的所有边权都变为ccc.Add a b c 把节点aaa和节点bbb之间的所有边权都增加ccc.Max a b 询问节点aaa和节点bbb之间的最大边权.解题思路树链剖分我们考虑操作的本质: 单点修改, 树链修改, 树链查询. ==> 树链剖分原创 2021-10-29 15:37:35 · 140 阅读 · 0 评论 -
POJ2763 Housewife Wind (树链剖分 边权化点权)
题目链接: Housewife Wind大致题意给定一棵有nnn个节点的树, 你最初位于sss号节点, 有mmm次如下操作:0 c 询问sss到ccc的距离, 然后令s=cs = cs=c.1 x c 把第xxx条边的边权修改为ccc.解题思路树链剖分 POJ又卡我vector, 就你卡我vector!!!很经典的树链剖分问题, 我们考虑到题目操作的本质: 求一条树链的边权和 及 单点修改.唯一需要转化的一点是: 我们需要讲树中的边权化为点权. 我们在第一次dfs时, 将每条边的权值记录到原创 2021-10-27 15:16:32 · 103 阅读 · 0 评论