随笔分类 - 数据结构-------------------
摘要:With $Dsu \ on \ tree$ we can answer queries of this type: How many vertices in the subtree of vertex $v$ has some property in $O (n \log n)$ time (fo
阅读全文
摘要:首先有一道题 王室联邦 题目大意 给定一棵树,将树分为大小范围为 $[B, 3B]$ 的连通块集,求方案 树上分块方法之一 类似贪心,用栈维护还没有在连通块中的子节点,对于递归到的当前的点 $p$ ,扫描它的子树,能拼凑就拼凑 但是注意最后可能还会有一些点(一定包括根)剩下,那么将这些点并到最后一个
阅读全文
摘要:说实话这题写树剖 $LCT$ 什么的真的思想又不难又好实现的样子,但是我还是选择自虐选择了动态点分治那就两种做法都稍微提一下: 树链剖分 / $LCT$ 很容易可以发现一个换根操作只会对当前根在原树(根为 $1$ )上的祖先一条链造成影响,也就是将它们的子树变成除当前链方向其它与之相连的点集,那么用
阅读全文
摘要:该题是[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$ 处将当前生成节点及其包含的节点整个移植到它更
阅读全文
摘要:首先易得方程,且经过变换有 $$\begin{aligned} f_i &= \min\limits_{dist_i - lim_i \le dist_j} \{f_j + (dist_i - dist_j)p_i + q_i\} \\ f_j &= p_idist_j + f_i - dist_i
阅读全文
摘要:线段树求直径可以求任意子树(包括连子树都不算的分散节点集合)的直径,适用范围广。 线段树的每个节点所对应的区间$[L, R]$,指代了$Dfn$在$[L, R]$内节点,其中线段树上每个节点存储了$diam$(当前区间直径)及$lp, \ rp$(当前直径对应的左右端点),每次$Merge$操作分为
阅读全文
摘要:题目描述 $ZZQ$ 是一国之主。 这个国家有$N$个城市, 第$i$个城市与第$(i + 1) (mod N)$和$(i - 1) (mod N)$在一个正$N$边形相连。 $ZZQ$ 又新建了$N - 3$条道路。这些道路都是连接两个城市的直线 段,且任意两条线段都只可能在城市处相交,不会在旧的
阅读全文
摘要:一维树状数组 · 单点修改 + 单点查询: 直接使用即可 · 区间修改 + 单点查询: 另外维护一个维护前缀和的树状数组,查询时查询与原值相加即可。 · 区间修改 + 区间查询: 若要查询区间$[1, R]$的区间和,可推公式,其中$D[i]$表示差分数组: $\sum\limits_{i=1}^R
阅读全文
摘要:zkw线段树是对普通线段树的常熟优化版本,$≈$树状数组的常数。 同时普通线段树是近似完全二叉树,而zkw线段树是满二叉树,且普通线段树自上而下访问,zkw线段树先找到叶子节点,自下而上进行访问。 那么易得建树 对于区间修改或查询,我们假定此时区间为$[L, R]$,那么令$s = L - 1$,$
阅读全文
摘要:· 题解 参考hzwer 首先看到Mi的条件想到构造虚树。 虚树中的一条边已经覆盖了整个出现在这条边上的点的子树的情况。 那么只需倍增查找所属议事处有变化的边界节点,同时计算这两段节点的贡献即可。 · 代码 1 #include <iostream> 2 #include <cstdio> 3 #i
阅读全文

浙公网安备 33010602011771号