数据结构---树链剖分
TbYangZ
这个作者很懒,什么都没留下…
展开
-
「ZJOI2008」 树的统计 - 树链剖分
题目大意 给定一棵无根树,每个点有一个权值,有三种操作:修改权值,询问x到y的路径上节点的最大权值和权值和。输出询问的结果。 分析 树剖模板题。由于是无根树,所以任意取一个节点作为根都是没有问题的,然后记为以为根的子树的节点数,若为的儿子中值最大的一个节点,则称边为重边,为的重儿子。到其他儿子的边称为轻边。为了处理之间的路径,可以分别处理到它们的LCA的路径。对于由重边或者一个节点组成的重路...原创 2018-09-04 16:00:40 · 173 阅读 · 0 评论 -
「HDU3966」 树上的询问 - 树链剖分
题目描述 给你一棵具有N个点(编号为1到N)M条边的树,并给定各个点权的值,然后有3种操作: I C1 C2 K:把C1与C2的路径上的所有点权值加上K D C1 C2 K:把C1与C2的路径上的所有点权值减去K Q C:查询节点编号为C的权值 分析 树剖模版题,只不过用树状数组就可以了,不必写线段树。 代码 #include <iostream> #include &...原创 2018-09-24 20:17:34 · 272 阅读 · 0 评论 -
「SDOI2011」 染色 - 树链剖分
题目描述 给定一棵有n个节点的无根树和m个操作,操作有2类: 将节点a到节点b路径上所有点都染成颜色c; 询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。 请你写一个程序依次完成这m个操作。 输入格式 第一行包含2个整数n和m,分别表示节点数和操作数; 第二行包含n个正整数表示n个节点的初始颜色 下面 行每行包含两...原创 2018-12-15 23:02:30 · 282 阅读 · 0 评论