![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
树链剖分
1
kaka0010
退役ACMer/算法竞赛菜鸡
展开
-
P4216 [SCOI2015]情报传递 树剖+主席树
原题链接:https://www.luogu.com.cn/problem/P4216 目录题意分析Code 题意 简单描述一下题意,有一棵树,m次操作 将x节点打上标记,并且x节点的权值每回合会增加1 询问x到y路径上有多少节点以及有多少节点权值大于c 分析 树上路径问题,一般直接想到树剖,然后考虑怎么去取值。先离线把打标记的时间记录一下,记为节点的权值,然后我们每次查询值的时候就只要查[1,t−val−1][1, t-val-1][1,t−val−1]权值的点个数就可以了,可以用主席树轻松维护。 C原创 2021-07-12 16:17:03 · 88 阅读 · 0 评论 -
2019ICPC西安邀请赛 E. Tree 树剖 + 线段树
原题链接:https://nanti.jisuanke.com/t/39272 目录题意分析code 题意 有一个树形结构,n个节点,有三种操作 1到s路径上的节点值或上t 1到s路径上的节点值与上t 在1到s路径中的石子中加入一堆t石子,并开始尼姆游戏问先手是否必胜 分析 树上路径带修改,一看就是树剖的题。 尼姆游戏也是个结论,只要全部值异或和为0,先手必败,反之先手必胜 最后处理位运算,我们可以拆成30棵线段树,每颗线段树存放第i位上的值,这样进行或运算时,我们只需要把t在2进制下为1的位在线段树上原创 2021-07-10 09:09:14 · 92 阅读 · 0 评论 -
HDU 5242 Game 树链剖分
原题链接 文章目录题意分析AC Code 题意 给一棵树,每个节点都有一个权值,每次操作从根节点开始到叶子节点,问k次操作,最多可以取多少。 分析 因为答案是对树链求和统计,所以可以考虑树剖,也是考虑去剖重链(根据权值),最后只要沿着重儿子一路统计出所有的链的值,在从大到小排个序取k个就可以了。想到树剖之后就是相当板子的题了。 AC Code #include <iostream> #include <cstring> #include <cstdio> #include原创 2020-12-22 16:06:34 · 124 阅读 · 1 评论 -
2020牛客暑期多校训练营(第七场)A National Pandemic (树剖)
题意 给定一棵树,要求对树上节点做以下操作: 给定固定的x值和w值,使树上所有的点y的权值增加w-dis[x, y] 给定固定的x值,使x的权值变为min(0, x的权值) 输出单点的权值 分析 对于w-dis[x, y],我们可以简单处理一下,将其转换为w- dep[x] - dep[y] + 2 * dep[lca(x, y)], 其中w-dep[x]的值是固定的,因此我们可以每次处理时都将其累加存储。 我们假设3节点为当前节点, 1.那么1的左子树的节点 5 6 7, 他们和3的lca都是节点原创 2020-08-06 18:17:38 · 198 阅读 · 1 评论