随笔分类 - 数据结构 —— LCT(动态树)
摘要:该题是[NOI2014]起床困难综合征的树上加修改版 先说说《起床困难综合征》,由于不同位运算之间不满足交换律,故必须按顺序执行操作 考虑位运算套路 —— 拆位,对于未知的初始值,它的每一位也是未知的,所以可以用两个变量 $a_0, a_1$ 来当作初始值当前位为 $0$ 或 $1$ 时最终可以得到
阅读全文
摘要:题意 有操作 $0$ $u$:询问有多少个节点 $v$ 满足路径 $u$ 到 $v$ 上所有节点(包括)都拥有相同的颜色$1$ $u$:翻转 $u$ 的颜色 题解 直接用一个 $LCT$ 去暴力删边连边显然会 $T$ 那么只有两个颜色的话就可以建两棵 $LCT$ ,观察到每次单点修改颜色时其子树所包
阅读全文
摘要:题意 有操作: 1 $x$ 把点 $x$ 到根节点的路径上所有的点染上一种没有用过的新颜色。 2 $x$ $y$ 求 $x$ 到 $y$ 的路径的权值。 3 $x$ 在以 $x$ 为根的子树中选择一个点,使得这个点到根节点的路径权值最大,求最大权值。 题解 因为观察到一个颜色一定是一条向根节点的链,
阅读全文
摘要:这题 FlashHu 的优化思路值得借鉴 前置引理 树中所有点到某个点的距离和中,到重心的距离和是最小的。 把两棵树通过某一点相连得到一颗新的树,新的树的重心必然在连接原来两棵树重心的路径上。 一棵树添加或者删除一个节点,树的重心最多只移动一条边的位置。 一棵树最多有两个重心,且相邻;同时,拥有奇数
阅读全文
摘要:题意 每个点有各自的权值,要求维护操作:动态加边、动态修改权值、询问在每个点只能经过一次的情况下两点间路程中的最大权值和 题解 首先对于一个静态的图,将其缩点,可以得到一棵树,那么两点间询问的答案即为它们之间经过的 $BCC$ 的权值和 支持动态加边,就需要用到 $LCT$ 去维护 $BCC$ 如果
阅读全文
摘要:(貌似整个代码不能用 $makeroot$ ?是因为是有根树?) 因为是区间操作,所以可以考虑在区间内与区间外的差异 对于操作 $1$ ,可以看作一个生成节点包含了到下一个 $1$ 操作之间长出的节点,那么对于一个操作 $l, r$ ,相当于是在 $l$ 处将当前生成节点及其包含的节点整个移植到它更
阅读全文