摘要: 线段树每个点上维护区间最大值、最小值, 区间除以 $x$ 时,由区间对应的每个节点向下递归到 $\max=\min$ 的节点,在这些节点上区间推平。 每个节点被除 $O(\log V)$ 次后 $\max=\min$,所以总复杂度 $O(n\log n\log V)$。 #include <cstd 阅读全文
posted @ 2023-10-08 16:53 5k_sync_closer 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 对每次询问,先求出最优方案下,左端点最多往右端点逼近几步, 然后同样求出最优方案下,右端点最多往逼近后的左端点逼近几步, 最后再逼近一步使左右端点重合即可。 倍增优化这个逼近的过程。 具体地,维护 $l_{i,j}/r_{i,j}$ 表示从 $i$ 走 $2^j$ 步最左 / 右能走到哪, 然后 $ 阅读全文
posted @ 2023-10-08 16:03 5k_sync_closer 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 必选一条端点在直径端点的路径,所以以直径两端点为根建两棵树,考虑一棵树的答案。 需要选出 $1$ 条根到叶子的路径,$k-1$ 条叶子到叶子的路径,最大化路径并边权和, 而必定存在方案使得每条路径都经过根: 所以只需考虑选出哪 $2k-1$ 个叶子,使得构造出路径的并,即这 $2k-1$ 个叶子的根 阅读全文
posted @ 2023-10-08 14:37 5k_sync_closer 阅读(5) 评论(0) 推荐(0) 编辑
摘要: $$ \begin{aligned} &\sum_{i\in\text{subtree(u)}}d(u,i)^k\\ =&\sum_{i\in\text{subtree(u)}}\sum\limits_{j=0}^k{d(u,i)\choose j}\begin{Bmatrix}k\\j\end{B 阅读全文
posted @ 2023-10-08 11:56 5k_sync_closer 阅读(2) 评论(0) 推荐(0) 编辑
摘要: DFS 序分块,变成区间深度模 $x$ 等于 $y$ 的点加 $z$。散块暴力,考虑整块。 对 $x$ 根号分治。$x\le\sqrt n$ 时,维护 $X_{i,j,k}$ 表示 $i$ 块被形如模 $j$ 等于 $k$ 的修改加了多少即可。 $x>\sqrt n$ 时维护 $Y_{i,j}$ 表 阅读全文
posted @ 2023-10-08 11:50 5k_sync_closer 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 时效性 A 记 $f(n)=\sum\limits_{i=0}^{n-1}\text{popcount}(i\oplus(i+1))$,则 $f(n)=f(\sum 2^i)=\sum f(2^i)=\sum2^{i+1}-1=2\sum2^i-\sum 1=2n-\text{popcount}(n 阅读全文
posted @ 2023-10-08 10:57 5k_sync_closer 阅读(2) 评论(0) 推荐(0) 编辑