前言 树链剖分:在一颗树上两点之间的路径的修改、求值。 原理 将一课树分成若干条链,将它们连起来,形成一条链,再用线段树等方法来维护、求值。 定义 在熟练剖分中,会使用到很多数组,这是它们的作用: 那么 重儿子 就是某个节点的儿子中size[]值最大的节点, 重边 就是它们的之间的边,由 重边 连起 ...
分类:
其他好文 时间:
2018-05-12 02:45:28
阅读次数:
147
食用之前请务必搞清楚 "线段树" 什么是树链剖分 树链剖分,它可以对一棵树进行 轻重链剖分 后用数据结构来维护每条重链。 比如下面这个问题:假设每个点有一个点权。如何把一棵树上的两个点$u$,$v$之间的简单路径上的所有点的点权增加$d$? 这就是树链剖分能够解决的的一个基本问题。 接下来介绍一下树 ...
分类:
其他好文 时间:
2018-05-12 00:07:55
阅读次数:
143
You are given a tree with N nodes. The tree nodes are numbered from 1 to N and have colors C1, C2,. . . , CN initially. You have to handle M instructi ...
分类:
其他好文 时间:
2018-05-11 23:29:20
阅读次数:
151
转载请注明出处,部分内容引自banananana大神的博客 ~~别说你不知道什么是树~~╮(─▽─)╭(帮你百度一下) 先来回顾两个问题:1,将树从x到y结点最短路径上所有节点的值都加上z 这也是个模板题了吧 我们很容易想到,树上差分可以以O(n+m)的优秀复杂度解决这个问题 2,求树从x到y结点最 ...
分类:
其他好文 时间:
2018-05-10 21:45:10
阅读次数:
169
一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权 ...
分类:
其他好文 时间:
2018-05-10 20:51:49
阅读次数:
148
转载请注明出处,部分内容引自banananana大神的博客 ~~别说你不知道什么是树~~╮(─▽─)╭(帮你百度一下) 先来回顾两个问题:1,将树从x到y结点最短路径上所有节点的值都加上z 这也是个模板题了吧 我们很容易想到,树上差分可以以O(n+m)的优秀复杂度解决这个问题 2,求树从x到y结点最 ...
分类:
其他好文 时间:
2018-05-10 14:23:46
阅读次数:
185
[BZOJ4196] install x-> 询问根节点到x路径上0的个数,然后全变1 uninstall x-> 询问x子树(包括x)中1的个数,然后全边0 Code ...
分类:
其他好文 时间:
2018-05-09 21:09:03
阅读次数:
181
[传送门] 树链剖分就行了,注意线段树上颜色的合并 Code ...
分类:
其他好文 时间:
2018-05-09 21:06:27
阅读次数:
168
国际惯例的题面:看起来很神的样子......如果我说这是动态DP的板子题你敢信?基于链分治的动态DP?说人话,就是树链剖分线段树维护DP。既然是DP,那就先得有转移方程。我们令f[i]表示让i子树中的叶子节点全部与根不联通,所需要的最小代价,v[i]为输入的点权。显然f[i]=min(v[i],si ...
分类:
其他好文 时间:
2018-05-09 01:10:48
阅读次数:
384