JustRaincoat Notebook OI/ACM 算法竞赛笔记

双连通分量(DCC)—— Tarjan

双连通分量(DCC)——Tarjan 原理 和 SCC 一样都是在 dfs 生成树上记录 dfn 和 low,在环中编号最小的。 需要做一下概念上的区分: SCC(强连通分量) 是针对有向图的概念。一个SCC内的任意两个节点都可以互相到达(即存在双向路径)。 DCC(双连通分量) 是针对无向图的概念

Administrator Administrator 发布于 2026-06-28

强联通分量(SCC)—— Tarjan

强联通分量(SCC)—— Tarjan 定义 强连通: 在一个有向图 G=(V,E)G = (V, E)

Administrator Administrator 发布于 2026-06-28

重链剖分(HLD)

Heavy-Light Decoposition 重链剖分 什么是重链剖分? 树链剖分 树链剖分是指,将一棵树分成若干条链,使得这些链具有某些性质,使得树上操作变为链上操作和跳链操作(链间操作)。 重链剖分(Heavy-Light Decomposition,简称 HLD)是一种把树分解为若干条链的

Administrator Administrator 发布于 2026-06-28

树的直径

树的直径 定义 树的直径是指树中任意两个节点之间的最长路径的长度(边数或距离)。直径的两个端点称为直径端点。 性质与应用 图论基础:用于分析树的结构特征 网络优化:数据中心、通信网络中的延迟评估 算法设计:分治、动态规划的基础 竞技编程:树形DP问题中的常见模式 算法步骤 方法一:两次BFS/DFS

Administrator Administrator 发布于 2026-06-28

最小生成树(MST)—— Kruskal

最小生成树(MST)—— Kruskal 贪心策略:每次选择权重最小的边加入生成树,同时避免形成环路 可用于解决最小网络,最低价联通之类的问题 例题 P3366 【模板】最小生成树 #

Administrator Administrator 发布于 2026-06-28

最近公共祖先 LCA

最近公共祖先 LCA 什么是 LCA 最近公共祖先(Lowest Common Ancestor,简称 LCA)是树上最基础的问题之一:在一棵有根树中,两个节点的所有公共祖先里,深度最大(离根最远)的那个节点,就是它们的 LCA。 举个例子:对于查询 (u,v)

Administrator Administrator 发布于 2026-06-28

欧拉路问题

欧拉路问题 Euler Path 欧拉路是图论中的经典问题,源于柯尼斯堡七桥问题。欧拉在 1736 年证明该问题无解,由此开创了图论这一数学分支。 定义 欧拉路径(Eulerian Trail):通过图中每条边恰好一次的路径(顶点可重复)。 欧拉回路(Eulerian Circuit):通过图中每条

Administrator Administrator 发布于 2026-06-28

差分约束

差分约束 定义 差分约束系统 是一种特殊的 nn

Administrator Administrator 发布于 2026-06-28

最短路算法

最短路算法 Introduction SPFA Dijkstra Floyd 最短路算法的应用 图论最短路算法核心比较表 特性 Dijkstra (优先队列优化)</

Administrator Administrator 发布于 2026-06-28