![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树链剖分
文章平均质量分 73
Faithfully__xly
这个作者很懒,什么都没留下…
展开
-
0718-树链剖分-洛谷3384
写的很良心的一篇博客。。。 这是一道很基础的树链剖分的题,其中涵盖了线段树的一些操作(区间求和,区间修改) https://www.luogu.org/problemnew/show/P3384 题目描述 如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 操作1: 格式: 1 x y z 表示将树从x到y结点最短路径上所有节点的值都加上z 操作2...原创 2018-07-18 21:01:03 · 177 阅读 · 0 评论 -
1021 - 【模板】树链剖分+换根
树链剖分 描述 给定一棵 n 个节点的树,初始时该树的根为 1 号节点,每个节点有一个给定的权值。下面依次进行 m 个操作,操作分为如下五种类型: 换根:将一个指定的节点设置为树的新根。 修改路径权值:给定两个节点,将这两个节点间路径上的所有节点权值(含这两个节点)增加一个给定的值。 修改子树权值:给定一个节点,将以该节点为根的子树内的所有节点权值增加一个给定的值。 询问路径:询问某条路径上节点的...原创 2018-10-21 12:47:17 · 1230 阅读 · 2 评论 -
树链剖分换根【模板】
树的操作 描述 XXX和 YYY在愉快地刷题。有一道题是这样的:给你一棵 n 个节点的有根树,每个节点有 一个权植。你要支持两种操作:查询以某棵树为根的子树的权值和,给以某个节点为根的整 棵子树的所有点的权值都加上一个值。机智的 XXX 很开心地用LLL教授 讲过的某些东西水水水水过了这道题。 但是可怕的出题人又增加了一种操作:将根节点改为第 u 号节点。于是XXX和YYY 就不会 做了。按照一惯...原创 2018-11-01 17:56:58 · 370 阅读 · 0 评论 -
长链剖分 - 攻略(BZOJ3252)
Analysis 其实和长链剖分关系不大 就是一个贪心 按照点权和的大小划分轻重链,然后将所有的链排个序,选前k个即可 Code #include<bits/stdc++.h> #define in read() #define re register using namespace std; inline int read(){ char ch;int f=1,res=0; ...原创 2019-07-25 19:02:07 · 157 阅读 · 0 评论 -
长链剖分 - lxhgww的奇思妙想(Vijos)
传送门 Analysis 长链剖分(可能是重链剖分他兄弟吧) 我们预处理出每个点向上2的幂次祖先fa[k][u],每一条重链的链顶向上、向下重链长度个点。(储存在vector中,由于重链长度和不超过n,所以空间、时间都是O(n)的) 对于询问求u的k次祖先,我们可以拆成r+(k−r)次祖先,其中r是k的最高二进制位,r次祖先u·可以用fa[k][u]得到。由于性质1。所以我们可以在top[u`]...原创 2019-07-22 16:13:33 · 136 阅读 · 0 评论 -
长链剖分 - 秘术「天文密葬法」(COGS2652)
传送门 一句话题意 给个树,第i个点有两个权值ai和bi,现在求一条长度为m的路径,使得Σai/Σbi最小 花痴三秒 啊!!!颤抖的人类 指针是真的棒(๑•̀ㅂ•́)و✧ 太神奇啦,吹爆指针大佬%%% Analysis 0/1分数规划+长链剖分维护路径点权和 分数规划的部分也就很简单了,将原式变形为∑a−k∑b≤0\sum a-k\sum b\le 0∑a−k∑b≤0 现在把每个点的点权化为...原创 2019-07-22 20:03:35 · 249 阅读 · 0 评论