随笔分类 -  图论&树论

摘要:定义 对于一棵树 \(T(S, E)\),取出一个点集 \(T \subseteq S\) 作为关键点集,将关键点和它们两两的 LCA 取出构成一个点集 \(V'\) 建一棵树,即为虚树。 建树 将 \(S\) 中所有点按 DFS 序排序,把所有相邻项的 LCA 再求出来放入序列 \(A\)。根据 阅读全文
posted @ 2025-07-22 11:06 心灵震荡 阅读(13) 评论(0) 推荐(0)
摘要:首先有一个经典小结论:\(k > 1\) 时,区间 LCA 的深度为 \(\min\limits_{i = l}^{r-1} \text{dep}_{\operatorname{LCA}(i, i+1)}\). 考虑对每个 \(x = \text{dep}_{\operatorname{LCA}(i 阅读全文
posted @ 2025-06-05 21:45 心灵震荡 阅读(47) 评论(0) 推荐(0)
摘要:连通性问题 1. 强连通分量 1.1. 算法解析 在 Tarjan 算法中为每个结点 \(u\) 维护了以下几个变量: \(dfn_u\):深度优先搜索遍历时结点 \(u\) 被搜索的次序,即 \(u\) 的 DFS 序。 \(low_u\):不经过 \(u\) 的祖先能到达的最小的 \(dfn\) 阅读全文
posted @ 2024-07-13 09:10 心灵震荡 阅读(42) 评论(0) 推荐(0)
摘要:2-SAT 问题 1. 模型 有 \(n\) 个布尔类型的变量 \(x_1, x_2, \ldots, x_n\),有 \(m\) 条限制形如 \(x_i \space [\operatorname{or}/\operatorname{and}]\space x_j=[1/0]\). 求一组符合要求 阅读全文
posted @ 2024-07-06 18:19 心灵震荡 阅读(27) 评论(0) 推荐(0)
摘要:网络流笔记 阅读全文
posted @ 2024-06-27 12:34 心灵震荡 阅读(61) 评论(0) 推荐(0)
摘要:给定一棵树,有修改边权和查询两点之间边权最大值两种操作,对于每个查询输出结果。 运用化边权为点权的思想,把边权转移到点上,并使用线段树维护最值。 阅读全文
posted @ 2023-08-20 18:52 心灵震荡 阅读(85) 评论(0) 推荐(1)
摘要:顾名思义,树链剖分就是将整棵树剖分为若干条链,使它组合成一个线性结构,然后用其他的数据结构维护树上的信息。 重链剖分可以将树上的任意一条路径划分成不超过 $O(\log n)$ 条连续的链,保证划分出的每条链上的节点 DFS 序连续,因此可以方便地使用线段树之类的数据结构来维护树上的信息。 阅读全文
posted @ 2023-08-19 14:33 心灵震荡 阅读(212) 评论(0) 推荐(0)