摘要: 「学习笔记」动态点分治 引子 点分治是个好东西, 可万一树上的权值需要修改呢...... 算法过程 点分治, 计算出初始数据. 构建点分树. 在点分树上进行数据维护. 点分树 : 把原树在点分治时的各级重心连接起来的数据结构, 称为点分树. 它有一个非常优美的性质 : 树高 规模为 \(\log n 阅读全文
posted @ 2019-12-30 22:33 BruceW 阅读(110) 评论(0) 推荐(0) 编辑
摘要: "[ZJOI2007]捉迷藏 " 近期做过的码量最大的一题 (当然也是我写丑了....) 题意 有一个 $n$ 个节点的树 ($n \le 10^5$), 每个节点为黑色或白色. 有 $m$ 个操作 ($m \le 5 \times 10^5$), 操作有两种, 1. 将点 $x$ 的的颜色翻转. 阅读全文
posted @ 2019-12-30 21:57 BruceW 阅读(142) 评论(0) 推荐(1) 编辑
摘要: 「学习笔记」点分治 引子 点分治, 其实应该叫 "树上点分治". 主要用于解决 "树上路径问题" (我乱起的名字). 比如, 树上是否存在长为 \(k\) 的路径, 树上长小于 \(k\) 的路径有多少条等等. 点分治可以概括为 : 分治 + 重心 + 桶 (就目前我做过的几道题来说都是这个套路) 阅读全文
posted @ 2019-12-30 11:44 BruceW 阅读(115) 评论(0) 推荐(0) 编辑
摘要: "LuoguP4178 Tree" 题意 给定一个 $n$ 个点的带权树 (边权为正整数), 求树中距离小于等于 $k$ 的点对数量. $1 \le n \le 4\times10^4, k \le 2\times10^4$ 思路 点分治. 对树上的点到当前根节点的距离建一个桶, 并在这个桶上建树状 阅读全文
posted @ 2019-12-30 09:33 BruceW 阅读(103) 评论(0) 推荐(0) 编辑