Tag: 图算法

带权并查集:需要多个权值以及权值为复杂结构的情况

摘要: 并查集中的集合权值很复杂的情况 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在文章 并查集 中我们学习了并查集的原理和代码模板。我们知道并查集的结构是一个森林,其中的每一棵树表示一个集合或

在Networkx中以无向图画出一棵树

摘要: 在 Networkx 中以无向图形式画出一棵树 【对数据分析、人工智能、金融科技、风控服务感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:潮汐朝夕我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在解决图算法的问题时,我们经常希望把图画出来直观地分析。本文我们通过之前解决过

力扣1766-互质树

摘要: 祖先链的信息,树形前缀 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 各位好,今天我们继续来看一个祖先链和树形前缀的题,在 DFS 的过程中记录祖先链上的质数因子相关的信息。之前的一些文章中

树的遍历:祖先链上的统计

摘要: 树形前缀就是祖先链 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 各位好,今天我们看一个树的遍历问题。主要涉及到树上的祖先链的概念。对于树来说,祖先链可以理解为树形前缀,在文章 树形前缀和:

有向无环图的反图与逆向思维

摘要: DAG 中的祖先节点 -> 反图的后代节点 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文我们通过一个题目来看一下有向无环图的反图的性质。首先我们简要介绍一下反图的概念以及有向无环图反图

力扣2642-设计可以求最短路径的图类

摘要: 加边松弛操作 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在文章 Floyd算法 中我们了解到了求最短路径的 Floyd 算法。理解这个算法需要一些动态规划的概念,其中阶段的定义与推导比较

heapdict:扩展标准库数据结构,支持堆中指定元素删改,以Dijkstra的优化为例

摘要: 扩展标准库数据结构,支持堆中指定元素删改。dijkstra 算法的 Python 模板 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 问题背景与 heapdict 简介heapdict 是一

树的最大权独立集:树形DP

摘要: 树形DP解决树上最大权独立集问题 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 对于没有自环的图 $D$,$S$ 为 $V(D)$ 的子集,若 $S$ 中任意两点均不相邻,则称 $S$ 为

给定树的遍历序-重建一棵可能的树

摘要: BFS 序和 DFS 序结合的经典问题 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在文章 遍历序的概念与性质 中,我们了解了树的各种遍历序。本文我们看一个直接的问题,如何从树的遍历序,构

带权DAG上的最长路径:拓扑序DP

摘要: 拓扑序DP解决带权DAG上的最长路径问题 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在文章 DAG上的DP (拓扑序DP):无权 DAG 的最长路径 中我们介绍了 DAG 上的拓扑序 D

问题规约的艺术:无向基环树的直径

摘要: 基环树的概念与例子 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 对于无向图,N 个点的树有 N - 1 条边,在树上任意加一条边,会形成一个环,除了环之外,其余部分由若干子树构成。 这种

含集合级信息的并查集

摘要: 带集合级信息的并查集的原理与代码模板 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在文章 并查集 中我们学习了并查集的原理和代码模板,本文介绍带集合级信息的并查集。 我们知道并查集的结构是

树上差分

摘要: 树上差分算法 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在文章 前缀和与差分,我们对一个序列定义了前缀和序列和差分序列,根据差分序列的前缀和序列是原序列,原序列区间上的增减转化为了前缀和

Floyd算法

摘要: Floyd算法的原理与代码模板 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 历届图灵奖得主基本上都有高学历、高学位,绝大多数有博士头衔。这是可以理解的,因为创新型人才需要有很好的文化素养

迪杰斯特拉算法(Dijkstra)

摘要: 迪杰斯特拉算法原理与代码模板 【对数据分析、人工智能、金融科技、风控服务感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:潮汐朝夕我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 迪杰斯特拉(Edsger Wybe Dijkstra)在一个充满科学气息的家庭背景中长大,父亲

多源BFS与多源最短路径

摘要: 力扣 1162,最基础的多源 BFS 题目 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 上个周日照例参加了力扣秋季赛的个人赛,在文章 2022力扣秋季赛个人赛战报 中记录的战报,并

【DP难题】力扣1595-连通两组点的最小成本

摘要: 力扣 1575,比较难的图论题,抽象之后是最小边覆盖问题,有状态压缩DP和二分图最大匹配两种解法。 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 今天我们来看一个比较难的图论题,力扣

二分图匹配-最大匹配

摘要: 二分图最大匹配的算法:匈牙利算法 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 对于一个无向图 G,有 N 个节点(N >= 2),可以发分成 A, B 两个非空集合,其中 $A \c

图论算法理论,实现与应用

摘要: 《图论算法理论,实现与应用》 【对数据分析、人工智能、金融科技、风控服务感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:潮汐朝夕我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 图论算法理论-实现及应用

树形前缀和:在树的DFS过程中维护祖先链的和

摘要: 在树结构上维护前缀和的问题 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在文章 面试好题连载 中,我提到了我认为的适合作为面试题的标准,这里复习一下: 对于适合面试的题目,以下几个

并查集-加边过程中维护具体连通分量

摘要: 并查集在加边过程中维护具体连通分量 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 问题背景对于用含集合级信息并查集解决加边连通性的问题,我们之前处理过以下几类问题: 加边过程中动态地处理【

【搜索难题】力扣1258-近义词句子

摘要: 力扣 1258,算法大杂烩 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文看一个大杂烩了很多算法的题目。整体的算法并不难,但是涉及到的东西很多。 $1 题目1258. 近义词句子

DAG判定

摘要: DAG 判定算法 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文我们给出 DAG 的判定算法,并解决 1059. 从始点到终点的所有路径。 DAG 的判定给定有向图 $D$,判定 $D$

并查集维护平面点的横纵坐标

摘要: 并查集的原理与代码模板 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 此前我们详细学习过并查集的原理,比如 并查集、带边权的并查集、含集合级信息的并查集。 本文我们学习并查集的一个常见应用技

删边连通性:并查集+逆向思维

摘要: 并查集+逆向思维处理删边连通性问题 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 对于维护加边连通性的过程,并查集是非常有力的。 但是由于并查集合并后一般是不支持回滚的,仅仅可以通过开栈的方

用下标索引堆优化邻接表的 Prim 算法

摘要: 下标索引堆的应用。 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文我们以 1135. 最低成本联通所有城市 来看一下如何用下标索引堆对邻接表的 Prim 算法进行优化。邻接表 + 二叉堆

用并查集中各集合的代表元建图,处理集合级信息

摘要: 只用并查集中各集合的代表元建图 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文我们来看一个并查集的高级应用,先用并查集将节点分类并维护集合级信息。然后只用集合的代表元建图,对集合级信

【设计难题】力扣631-设计Excel求和公式

摘要: 基于图算法的设计 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings $1 题目 631. 设计 Excel 求和公式 你的任务是实现 Excel 的求和功能,具体的操作如下: Excel(in

DAG上的DP (拓扑序DP),无权 DAG 的最长路径

摘要: 拓扑序DP解无权DAG上的最长路径问题 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 对于一个 DAG,我们可以进行拓扑排序,一些动态规划的问题,其阶段的推导过程呈现为一个 DAG,形成了图

DAG典型应用-活动网络

摘要: AOV、AOE 两种活动网络。关键路径算法 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings $0 活动网络活动网络(activity network)是一种 DAG,可以用来描述生产计划、施工

有向图的必经点,支配树

摘要: 有向图的必经点,支配树 【对数据分析、人工智能、金融科技、风控服务感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:潮汐朝夕我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文我们看一个从业务场景中抽象出来的图论的问题:有向图的必经点。给定有向图上的两个点 S 和 T,从

最近公共祖先问题

摘要: 最近公共祖先问题的三种解法,以及一些应用 【对数据分析、人工智能、金融科技、风控服务感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:潮汐朝夕我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在文章 树上倍增 中,我们学习了树上倍增的思想。树上倍增主要解决从某个节点向上找第

拓扑排序的存在性和唯一性;建图的CornerCase

摘要: 建图的各种 Corner Case 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文我们通过一个拓扑排序的应用问题,看一下在建图时可能遇到的各种 Corner Case。此外本题还有一个值

记录搜索路径;枚举点找边和枚举边找点

摘要: 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文通过 126.单词接龙 II 主要介绍在搜索过程中如何记录搜索路径。因为有时候光搜到了还不行,还需要给出搜索到的具体路径。此外本题的枚举点

隐式图搜索

摘要: 隐式图搜索的概念,以单词接龙为例 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文我们首先介绍隐式图搜索的相关概念,然后解决一个非常经典的用 BFS 解决的隐式图搜索问题,用建图和不建图的

遍历序的概念与性质

摘要: 图的几种遍历序及其应用 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 对于一棵树,我们知道从根节点出发有 DFS 和 BFS 两类方法可以把树种的节点遍历一遍。如果是二叉树的话,基于 DFS

二部图判定定理与算法

摘要: 本文介绍二部图判定定理与二部图判定算法 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在文章 图论1-基本概念 中我了解了二部图的定义和一些性质。 本文我们以力扣第 785 题为模板题,看一

负环

摘要: 负环 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 负环在图论中,如果一条边的权值是负数,则为负权,如果图中存在一个环,还上各个边的权值之和为负数,则为负环。 在 带权图最短路径 中,各种单

超级源

摘要: 超级源的处理技巧 【对数据分析、人工智能、金融科技、风控服务感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:潮汐朝夕我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 超级源和超级汇是图论问题中的一个处理技巧。本文我们简要介绍一下超级源和超级汇的思想,然后解决力扣 1168。

欧拉路径

摘要: 本文介绍欧拉路径的判定定理、算法、代码模板和例题。 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 1736 年欧拉解决七桥问题,从七桥问题出发,进一步可以抽象出欧拉路径的概念。欧拉七桥问题

遍历树的概念与性质

摘要: 图的遍历树的概念与性质 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 考虑图的遍历,BFS 和 DFS 过程中,每个节点都有一个深度或者层次,也就是到作为起点的节点的距离。各个节点按照深度以

哈密顿路径

摘要: 本文介绍哈密顿路径的背景、算法、代码模板和例题。 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 哈密顿是 19 世纪数学家、物理学家。哈密顿在数学方面主要研究代数,比如我们可能都知道线性代

拓扑排序的方案数

摘要: 一个综合算法问题:树形DP + BST 建树 + 预处理组合数 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文我们通过力扣的一个题目,来看一下拓扑排序方案数问题怎么解决。这是第 204

带边权的并查集

摘要: 带边权并查集的原理与代码模板 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在文章 并查集 中我们学习了并查集的原理和代码模板,本文介绍带边权并查集。 我们知道并查集的结构是一个森林,其中的

并查集

摘要: 并查集的原理与代码模板 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文介绍并查集的原理和代码模板,最后针对并查集可以解决的几类问题,列出了一些题目列表。 $1 并查集并查集是一种可以动

异构图建图

摘要: 两种类型的点和边的异构图建图 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 我们知道图论的算法相对比较固定,变化的地方不多,难点在于怎样从实际问题转换为图,图中的节点、边在原问题中是什么含义

拓扑排序

摘要: 拓扑排序原理、代码模板、题目列表 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumFloyd算法的原理与代码模板plings 本文我们学习拓扑排序的原理、给出代码模板和题目列表,然后解决力扣 210. 拓

带权图最短路径的变种问题

摘要: 带权图最短路径的变种问题 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在文章 带权图最短路径算法与实现 中我们以力扣 743 作为模板题,全面梳理了带权图最短路径的各种算法与实现。 本文

树上倍增

摘要: 树上倍增算法及其在最近公共祖先问题上的应用 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 在文章 树的直径 中我们学习了树的直径的算法,这是树上的一个基础问题,很多问题都可以拆解成树的直径问

带权图最短路径算法与实现

摘要: 带权图单源最短路 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文我们以力扣 743 为模板题来看一下带权图的单源最短路问题的各种算法的原理以及实现。涉及到以下算法: dkijstra