随笔分类 - 数据结构——树链剖分
摘要:题目链接 BZOJ3083 换根不能真正地换。 令当前的根为$cnt$,要查找的子树根为$x$ $1$、$x = cnt$,那么要查找的区域就是整棵树。 $2$、$x$在以$cnt$为根的子树内,那么要查找的区域就是以$x$为根的子树。 $3$、$x$在以$cnt$为根的子树外 (1)$x$不是$c
阅读全文
摘要:题目链接 BZOJ 4568 考虑树链剖分+线段树维护每一段区域的异或线性基 对于每个询问,求出该点集的异或线性基。然后求一下这个线性基里面能异或出的最大值即可。
阅读全文
摘要:题目链接 ...Wait for it... 考虑树链剖分。 对于树上的每个点开一个set,记录当前该节点上所有的girls。 每个节点初始的权值为set中的最小值。 询问的时候每次在路径上寻找最小值,并返回这个点的编号。 然后把这个点的set的第一个元素取出,换成下一个元素。 因为女孩总数不超过1
阅读全文
摘要:题目链接 HDU5893 $2016$年$ICPC$沈阳网络赛的$B$题。这道题其和 BZOJ2243 基本一样 那道题我也写了题解 点这里 两道题的区别就是$BZOJ$这题是点的权值,这道题是边权。 所以我们把边权看成这条边连接的两个点的深度较大的那条边的点权就可以了。 但是这样的话根结点就没有权
阅读全文
摘要:题目链接 BZOJ4034 这道题树链剖分其实就可以了。 单点更新没问题。 相当于更新 [f[x], f[x]]这个区间。 f[x]表示树链剖分之后每个点的新的标号。 区间更新的话类似DFS序,求出所对应的区间。 也就是[f[x], f[x] + size[x] - 1]。 给这个区间加上a即可。
阅读全文
摘要:题目链接 BZOJ2243 树链剖分 $+$ 线段树 线段树每个节点维护$lc$, $rc$, $s$ $lc$代表该区间的最左端的颜色,$rc$代表该区间的最右端的颜色 $s$代表该区间的所有连续颜色段数(仅考虑该区间) $lazy$表示延迟信息。
阅读全文
摘要:题目链接 松鼠的新家 差不多可以说是树链剖分的模板题了,直接维护即可。
阅读全文

浙公网安备 33010602011771号