随笔分类 - 算法-图论
acwing 算法基础课的图论算法
摘要:C++ 二分图的最大匹配 /* * 二分图的最大匹配 * * 先前在介绍二分图时候,我们简述了什么是二分图,以及二分图的充要条件,并学会使用了染色法来判断二分图。 * 此次来介绍二分图的最大匹配。 * * 定义: * 二分图的匹配: * 给定一个二分图 G,在 G 的一个子图 M 中,M 的边集 {
阅读全文
摘要:c++ 染色法判定二分图 /* * 二分图 * * 二分图定义: * 二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B), * 并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in
阅读全文
摘要:c++ Kruskal算法求最小生成树 /* * 最小生成树 * 最小生成树是图论中最为常见的问题之一,不过相比于最短路中的单源最短路和多源最短路,最小生成树算法主流仅有两种。 * 分别是 Prim 算法和 Kruskal 算法。这两个算法一个是基于点的算法,一个是基于边的算法。 * 这两者的关系有
阅读全文
摘要:c++ Prim 算法求解最小生成树。 O(N^2) 和 O(mlog m) /* * 最小生成树 * 最小生成树是图论中最为常见的问题之一,不过相比于最短路中的单源最短路和多源最短路,最小生成树算法主流仅有两种。 * 分别是 Prim 算法和 Kruskal 算法。这两个算法一个是基于点的算法,一
阅读全文
摘要:经典多源最短路 Floyd 算法 /* * 多源最短路 * 最短路是图论中最为常见的问题之一。按照源点的个数,可以分为单源最短路和多源最短路。 * 在前几篇博客中,我们介绍了单源最短路的 Dijkstra 算法, Bellman-ford 算法, Spfa 算法。复杂度分别为 O(MlogM)、O(
阅读全文
摘要:本博客贴出两种常见的 Spfa 判断负环的方法。 题目链接 spfa 超级源点判断 参考 Y 总做法 /* * 判断图中负环 * * 判断负环是一个比较经典的问题,图中是否存在负环甚至是某些算法应用的先决条件,首先我们探讨一下什么是什么是环。 * * 环 * 环使之从一个点出发,经过其他点能,最后能
阅读全文
摘要:SPFA 求解最短路代码 c++ /* * Spfa 最短路算法:Shortest Path Faster Algorithm * 前言: * 先前,我们介绍了基于点的 Dijkstra 最短路 和 基于边的 Bellman-Ford算法,他们各有各的长处。这次我们介绍一下应用也非常广泛的 spfa
阅读全文