随笔分类 - Kruskal 重构树
摘要:洛谷传送门 考虑 \(d = 2\) 的部分分。相当于只用 \(2\) 次操作把 \(T\) 变成一条链。 不妨设最后变成的是一个 \(1 \sim n\) 的链,如果不是可以把点重编号。 第一次操作考虑以 \(n\) 为根,每次取每个儿子的子树中的最大值为新的根并和原来的根连边,这样会将整棵树具有
阅读全文
摘要:洛谷传送门 CF 传送门 首先需要知道的一个 trick:判断一个点是否在一个闭合回路内部,从这个点向任意方向引一条射线,若不考虑相切,那么和回路的交点为奇数时这个点在回路内部,否则在外部。 那么这题要判断一个回路是否包含全部的 island,可以找到任意一个 island 向右引一条射线。 给每个
阅读全文
摘要:[洛谷传送门](https://www.luogu.com.cn/problem/CF825G "洛谷传送门") [CF 传送门](https://codeforces.com/problemset/problem/825/G "CF 传送门") 模拟赛赛时做法。 看到查询路径点权最小值,想到建重构
阅读全文
摘要:[洛谷传送门](https://www.luogu.com.cn/problem/CF1648E "洛谷传送门") [CF 传送门](https://codeforces.com/problemset/problem/1648/E "CF 传送门") 被一道题创了三天 我们
阅读全文
摘要:[洛谷传送门](https://www.luogu.com.cn/problem/AT_abc235_h "洛谷传送门") [AtCoder 传送门](https://atcoder.jp/contests/abc235/tasks/abc235_h "AtCoder 传送门") 为啥洛谷唯一一篇题
阅读全文
摘要:洛谷传送门 AtCoder 传送门 基础图论。 考虑快速求出 $d(s, t)$,那么边权要 $+1$ 的边仅当边权等于 $d(s, t)$ 时答案可能为 $1$。求 $d(s, t)$ 可以建出 Kruskal 重构树,查两点 $\text{LCA}$ 点权得出。 考虑把询问离线,把相同的 $d(
阅读全文
摘要:洛谷传送门 AtCoder 传送门 非常妙的 Kruskal 重构树。 倒序考虑,相当于每次经过一个点必须至少有 $\max(0, a_u - b_u)$ 元,然后获得 $b_u$ 元,并且之后经过这个点都不会再获得钱。令 $c_i = \max(0, a_u - b_u)$,考虑枚举终点 $u$,
阅读全文
摘要:洛谷传送门 思路 考虑按边权从小到大和从大到小排序,建两棵 $\mathrm{Kruskal}$ 重构树。根据 $\min$ 和 $\max$ 倍增到相应的祖先结点,问题就转化成了两棵子树交。记 $a,b$ 分别为两棵树的 $\mathrm{dfs}$ 序,则问题为满足 $i \in [l_1,r_
阅读全文
摘要:洛谷传送门 CF 传送门 思路 路径最值想到 $\mathrm{Kruskal}$ 重构树,则求最大权值就是求 $\mathrm{LCA}$ 的点权。 多个点的 $\mathrm{LCA}$ 就是 $\mathrm{dfs}$ 序最小和 $\mathrm{dfs}$ 序最大的点的 $\mathrm{
阅读全文
摘要:洛谷传送门 CF 传送门 思路 考虑离线,按时间倒序进行操作,删边变成加边。 然而若按时间倒序进行操作,就不知道哪些点已经 $p_u = 0$ 了。. 可以按加边的顺序建出 $\mathrm{Kruskal}$ 重构树。则可以倍增找到在 $t$ 时刻连通的祖先,它的所有叶子子结点即为在 $t$ 时刻
阅读全文
摘要:Kruskal 重构树 回忆 $\mathrm{Kruskal}$ 算法求最小生成树的过程,将所有边按边权排序,然后从小到大合并。若两个点不直接合并,而是新建一个虚点 $z$,连 $z \to x$ 和 $z \to y$,就形成了一棵 $\mathrm{Kruskal}$ 重构树 。 $\math
阅读全文
摘要:洛谷传送门 CF 传送门 思路 考虑将每条边的编号作为边权,然后建 $\mathrm{Kruskal}$ 重构树。 那么每个询问的答案即为 $\mathrm{LCA}(l,l+1,...,r-1,r)$。 有一个经典套路,就是多个点的 $\mathrm{LCA}$ 就是 $\mathrm{dfs}$
阅读全文

浙公网安备 33010602011771号