随笔分类 - 图论
摘要:CF490F 题解 思考了将近一整天的题目,现在写个题解。 题意 给定一个带权树,求出树上最长严格递增子序列的长度,首先考虑严格递增子段的做法,大概是直接进行树形 dp 就行,但是子序列的问题又会复杂一些。 分析 其实大概花上了半天去思考 树上启发式合并 的做法,但是实在是不知道该如何撤销轻儿子子树
阅读全文
摘要:欧拉图 学习笔记 离散课没有认真听,但是做到了需要使用欧拉路径相关算法的题目,索性学了一下,弥补一下图论板块基础内容的空缺。 欧拉图 分为有向图和无向图两种情况。 必要条件 无论如何,都需要满足图联通的条件,有些时候题目并不保证这个条件成立,所以需要自己并查集判断一下。 欧拉路径 有向图中,满足:有
阅读全文
摘要:Tarjan 学习笔记 题外话 Tarjan 真的是算法领域的神 下文基本上摘抄于 OI Wiki,大概率有雷同 理解所有 Tarjan 算法,最关键的地方在于把图当做一个 dfs 树看待,然后就能够直观地感受出“边”的类别。 应用 求有向图中的强连通分量 求割点 强连通分量 2-SAT 算法分析
阅读全文
摘要:ABC383E 题解 题意 给定一张包含 \(n\) 个节点和 \(m\) 条无向带权边的图,以及两个序列 \(A_k,B_k\) 分别表示图中的某些节点,定义 \(f(A_i,B_j)\) 为从 \(A_i\) 到 \(B_j\) 所有路径各自包含的边权最大值中的最小值,可以任意排列 \(B\)
阅读全文
摘要:最小生成树 证明 最小生成树构成的过程实际上是做 \(n-1\) 次操作,每一次合并一个点集,直到图中只剩下一个集合为止 。 要达到的就是让每一次合并的代价之和最小。 那么我们实际上可以贪心地选择边权最小的并且能够合并集合的边(Kruskal算法),这个算法的正确性简单来说可以用反证法来证明,假设我
阅读全文
摘要:Luogu P2761 软件补丁问题 一道超蒻的蓝题 软件补丁问题 题目描述 T 公司发现其研制的一个软件中有 \(n\) 个错误,随即为该软件发放了 \(m\) 个补丁程序。 每一个补丁程序都有其特定的适用环境,某个补丁只有在软件中包含某些错误而同时又不包含另一些错误时才可以使用。一个补丁在排除某
阅读全文

浙公网安备 33010602011771号