合集-算法学习笔记
摘要:### 题目链接:https://www.acwing.com/problem/content/897/ ## 讲解 动态规划问题具有三个特质: * 子问题重叠: 即子问题是相互之间依赖的 这个子问题在之后可能被反复使用 (此条件并非必要条件 但失去它也就没有优化作用了) * 最优化原理: 此问题可
阅读全文
摘要:逻辑理解: 把\(x_i <= x_j + c\) 看成\(j -> i\)花费\(w_c\) 的边(边的定义) 那么此时在满足所有限制的情况下求最短路就能满足此性质。 (满足所有限制就是从超级原点出发 遍历所有边) 求一遍最短路。 如何判断无解呢? 有负环就等价于无解。 有负环就无解。无解一定是\
阅读全文
摘要:\(Prim:\) 证明:(人话): 在这个图中 假设当前距离集合最短边是\(u->v\), 那么假设它不在任意一棵最小生成树中 那么 在最小生成树中,\(u -> v\)必然存在其他边相连,并且在这之中,一定存在从集合到外的一条边(横跨切割的边)\(x->y\),(因为u,v不在一个集合中,如果不
阅读全文
摘要:\(upd:2025.9.23\) 重写(第五次了 前言 \(KMP\) 算法(\(Knuth-Morris-Pratt\) 算法)是一个著名的字符串匹配算法,效率很高,但是确实有点复杂。 本人被\(KMP\)已经折磨许久。五战KMP。方知之前理解确实浅。故写此篇。 KMP确实是很牛逼的算法。对这个
阅读全文
摘要:树链剖分: 可以把路径分割成\(logn\)个区间。 概念: 重/轻儿子:当前节点的子节点中子树最大的子结点称为该节点的 重儿子,其余都为 轻儿子 重/轻边:当前节点到 重儿子 的边称为 重边,到 轻儿子 的边称为 轻边 重链:由 重边 构成的 极大路径 ->区间问题好解决,考虑序列化,链不就变成区
阅读全文
摘要:\(dfs\)序 以\(DFS\)(先根遍历)⾸次访问顺序将节点重新排列。 特征: 每个顶点在序列中出现恰好⼀次(废话) ⽗节点排在⼦节点前⾯(废话) 每棵⼦树都占据序列的⼀个区间 欧拉序 记录\(DFS\)递归/回溯时依次经过的所有点。 特征: 每个点出现次数=度数(根多1次) 相邻点深度差1 \
阅读全文
摘要:求SCC。 dfs一次。回溯序找出来。 回溯序从大到小,开始dfs遍历,所有遍历到的点组成SCC。 这里浅证: 这么干是为了避免dfs重复。这样可以直接标记了。
阅读全文

浙公网安备 33010602011771号