![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
树链剖分
树型转化为线性
不拿牌不改名
ACM刚入门,博客写错了可以留言给我啊
展开
-
树链剖分+线段树求子区间合并问题 [SDOI2011]染色(洛谷 P2486)
[SDOI2011]染色题目大意:给一颗n个结点的树,有两个操作:将节点 a 到节点 b 的路径上的所有点(包括 a 和 b)都染成颜色 c询问节点 a 到节点 b 的路径上的颜色段数量。颜色段的定义是极长的连续相同颜色被认为是一段。例如 112221 由三段组成:11、222、1。这题我觉得不是线段树染色的题,因为不是问你区间里面颜色的种类数,而是连续相同的颜色段数;这就和前面做过的求子区间最大连续和等等问题非常类似,就是线合并过程中会有一些区别;因为是树上问题,剖成链是基本操作,但是原创 2020-05-15 15:39:51 · 174 阅读 · 0 评论 -
树链剖分求边权 [USACO11DEC]Grass Planting G(洛谷 P3038)
[USACO11DEC]Grass Planting G题目大意:给你一颗n个结点的树,m个操作,操作为询问一条路径上的边权和或者对一条路径上的每条边的权值都加1;树链剖分的模板是对树上结点操作,但是这是对树上的边操作;边转化为点,只要两点路径上的每个点(除了两点的LCA)都加1就行;询问和修改都是如此;树链剖分也可以求LCA,当x,y跳到同一条链时,深度小的就是LCA;代码:#...原创 2020-05-07 17:01:07 · 197 阅读 · 0 评论 -
树链剖分 学习笔记
写在前面,算法笔记只是针对个人复习用,要想学习这个算法还是要看更详细的博客或视频讲解。树链剖分基本概念不讲,讲一下各个函数的作用,以及基本实现原理;首先要知道树链剖分的作用就是把树上问题转化为线性问题;线性问题总所周知就有区间问题,有区间问题就有线段树这种东西;所以树链剖分就是先把树拆成一条条链(线性),然后用线段树维护区间就行;怎么拆是最难的,我觉得搞懂dfs序是前提,因为就是根据d...原创 2020-05-05 00:39:53 · 235 阅读 · 0 评论