随笔分类 -  树链剖分

摘要:调了一下午。。 属实自闭 想法很简单 同Sdoi2016游戏的做法 将路径拆成两条 $u \to lca$,$lca \to v$ 等差数列对 $u \to lca$ 路径上的点 $x$ 的影响为 $a + (dep_{u} dep_{x})\times b$ 可以拆成 $( b) \times d 阅读全文
posted @ 2020-03-05 19:01 Mrzdtz220 阅读(216) 评论(0) 推荐(0)
摘要:树剖 可以不用换根 若根在查询的点的子树内 那么查询的就是查询的点删去根所在的子树,即为两个区间 否则就还是直接查子树 阅读全文
posted @ 2020-02-20 00:29 Mrzdtz220 阅读(142) 评论(0) 推荐(0)
摘要:一种用来合并子树中关于深度的信息的trick 重儿子定义为沿着重儿子走到的叶子深度最深。 求 $k$ 级祖先 一个节点的 $k$ 级祖先所在的重链长度不小于 $k$。 证明显然。 1. 记录重链长度 $len[u]$ 以及链头 $top[u]$。 2. 记录倍增数组 $fa[u][sz]$。 3. 阅读全文
posted @ 2019-10-26 10:31 Mrzdtz220 阅读(146) 评论(0) 推荐(0)
摘要:[传送门] 树链剖分。线段树维护区间最左边和最右边的颜色以及区间颜色段,合并时等于左区间颜色段+右区间颜色段-[左区间右端点颜色==右区间左端点颜色] #include <bits/stdc++.h> namespace IO { #define getc getchar void read() { 阅读全文
posted @ 2019-10-18 23:40 Mrzdtz220 阅读(105) 评论(0) 推荐(0)
摘要:[传送门] 首先,树剖无疑。其次,不会了... 搜了发题解才知道咋写。 没有什么正(wo)常(hui)点(xie)的线段树直接做的写法。换个形式,发现题目中的修改可以用矩阵乘法来表示一个节点用一个$1 \times 3$的矩阵来表示$$\begin{bmatrix} 1 & v & t \end{b 阅读全文
posted @ 2019-10-13 01:42 Mrzdtz220 阅读(142) 评论(0) 推荐(0)