![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树链剖分
Todobe
two funny foolish men
展开
-
树链剖分+线段树【SDOI2011】 bzoj2243 染色
题目大意:给一棵树,每个节点有一个颜色。写一个程序支持把两个点路径上的所有点染成一个颜色,查询两点之间的色段数量。解题思路:树链剖分+线段树首先它是一颗树,而且是修改和查询两点路径上的颜色,可以想到树链剖分。查询颜色段数可以用线段树维护区间颜色段数。这道题涉及到区间合并,所以在线段树和lca的时候需要多记录一些东西,当前区间的最左边的颜色,最右边的颜色,已经求出的区原创 2016-12-11 08:04:56 · 393 阅读 · 0 评论 -
【bzoj3589】动态树 树链剖分+线段树
题目大意: 给定一棵树,支持以下两个操作: 0、子树修改 1、查询几条的链并的权值和,答案模2^31。 (这些链为某个节点到根的路径的一部分)题目分析:(树链剖分+线段树) 首先,这道题跟动态树没什么关系。 其他的题解有用什么容斥原理,还有奇怪的动态树做的,我觉得树链剖分+线段树就足够了。我们假设不是求这些链的并,而是求这些链的权值和。 那么只需要树链剖分之后维护线段树就原创 2017-04-06 20:00:46 · 429 阅读 · 0 评论 -
bzoj3083 遥远的国度 树链剖分+线段树
题目大意: 维护一棵树,支持三个操作: 1、换根; 2、链修改; 3、查询子树最小值。题目分析: 如果只有2、3操作就可以直接树链剖分+线段树裸上了。 加上1操作后,我们仍然可以树链剖分+线段树裸上。对于查询操作,我们分三种情况讨论: 假设查询的点为x。 1、根和x相同:直接输出整棵树的最小值。 2、根不在x的子树中:直接查询原x的子树。 3、根在x的子树中:先找到根在x的哪个子原创 2017-06-16 11:34:47 · 390 阅读 · 0 评论 -
bzoj4448 [Scoi2015]情报传递 树链剖分+树状数组
题目大意: 维护一颗树,支持一下操作(可以离线) 1、给一个点赋值; 2、查询一条链上比有多少个点以及某个数(i-c)小的点有多少个。(我这个题目大意略精简了一点哈=。=,但是还是可以比较轻松的把原题目转化成这个意思的)题目分析: 我们可以把所有的操作离线出来,把赋值操作按照赋值的大小排序(相当于没排,不知道我这个沙茶为毛要排一下>_<) 然后把所有的询问按照要(i-c)从小到大排序。原创 2017-06-16 16:08:18 · 728 阅读 · 0 评论