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

浙公网安备 33010602011771号