图论
文章平均质量分 87
T_a_r_j_a_n
这个作者很懒,什么都没留下…
展开
-
[图论]-------斯坦纳树
斯坦纳树简介斯坦纳树问题是组合优化问题,与最小生成树相似,是最短网络的一种。最小生成树是在给定的点集和边中寻求最短网络使所有点连通。而最小斯坦纳树允许在给定点外增加额外的点,使生成的最短网络开销最小。-------- 百度百科斯坦纳树问题的最初形式是这样的:给定平面上的一系列点 P1,P2,P3,...,PnP_1,P_2,P_3,...,P_nP1,P2,P3,...,Pn,现在要想办法用边将这 nnn 个点连通。允许在平面上添加一些新的点(这些点称为“斯坦纳点”)作为辅助,添加的边的端点原创 2021-04-13 21:48:02 · 4965 阅读 · 0 评论 -
[图论]--------Prufer 序列
Prufer序列简介原创 2021-04-10 16:11:03 · 448 阅读 · 0 评论 -
[图论]------ 一般图最大匹配(带花树算法)
吐槽这两天的训练赛接二连三地出这种又冷门又难的算法。不得不硬刚。。。。本博客默认阅读者对匈牙利算法有一定理解。带花树算法带花树算法,英文: Blossom algorithmBlossom \ algorithmBlossom algorithm,或Edmonds Matching AlgorithmEdmonds \ Matching \ AlgorithmEdmonds Matching Algorithm。是 Jack Edmond原创 2021-03-13 17:27:22 · 1890 阅读 · 0 评论 -
[图论]-------最小瓶颈路
最小瓶颈路对于图 G(V,E)G(V, E)G(V,E),结点AAA和BBB的最小瓶颈路指的是,在AAA到BBB的所有路径中,权值最大的一条边权值最小的一条路径,大多数时候只需要求最小瓶颈路上的最长边。先写上结论:最小瓶颈路一定在最小生成树上。这个具体证明我也不是特别清楚,网上的资料很少。不过还是可以通过求最小生成树的过程隐约看出这个结论,Kruskal算法的额执行过程就是把所有边按边权从小到大依次尝试加入到生成树中,这个贪心的过程,决定了最后的生成树中A,BA,BA,B两点之间的路径边权最大的一条边原创 2021-01-23 17:34:38 · 713 阅读 · 0 评论 -
[图论]------[树形结构]------树的直径
树的直径的定义树的直径定义为树上距离最大的两个点的距离。常见的求法有两种。方法一: 两次DFS两次DFS的求法比较好理解,写在前面。证明一个结论:树上任意一个结点能到达的最远的结点,一定是树的直径的一个端点。设任意结点为 s ,s 能到达的最远节点为 t。他们的距离为 dis[s][t]dis[s][t]dis[s][t]利用反证法,假设树的直径的两个端点为 n1,n2 且(n1!=t且n2!=tn1!=t且n2!=tn1!=t且n2!=t)树上直径为 dis[n1][n2]dis[n1][n2原创 2020-10-19 11:15:38 · 302 阅读 · 0 评论 -
[图论]------[树形结构]------树的重心
树的重心定义树的重心也叫树的质心。对于一棵树n个节点的无根树,找到一个点,使得把树变成以该点为根的有根树时,最大子树的结点数最小。换句话说,删除这个点后最大连通块(一定是树)的结点数最小。-------百度百科可以类比一下物理上的重心,一个物体本来质量是不均匀的,但是在重心这个质点上就可以把这个物体视为均匀的 (口胡) 那么树的重心可以这样理解:以这个点为根节点,它的多棵子树 “尽可能平衡”。树的重心的性质一下性质摘抄自百度百科。树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有原创 2020-10-16 11:41:40 · 1285 阅读 · 0 评论 -
[图论]-----[网络流]-----最小割的可行边与必须边
最小割的可行边和必须边我们知道一个流量网络,可能会有很多种最大流方案,这些不同的方案中,最小割的割边集也是不同的。在有些问题中,可能需要确定最小割的可行边与必须边。如果存在某个最大流方案,使得边 E(u,v) 被割断,那么 E 就是一条最小割可行边。如果对于每个最大流方案,都有边 E(u,v) 被割断,那么 E 就是最小割必须边。可行边E(u,v) 为可行边的充要条件:边 E(u,v) 满流在残量网络中,不存在 u 到 v 的路径。求法:在残量网络上用 Tarjan 算法求 SCC,如果原创 2020-09-12 23:38:46 · 483 阅读 · 0 评论 -
[图论]---[二分图]---DAG最小路径点覆盖
DAG最小路径点覆盖的定义原创 2020-08-19 21:09:27 · 357 阅读 · 0 评论 -
[图论]---[网络流]---最小点割数/最小点割集
概念原创 2020-08-19 19:10:53 · 1614 阅读 · 2 评论 -
[图论]---[网络流]---最大权闭合子图
最大权闭合子图闭合图的概念闭合图建立在有向图之上,对于 G = (V, E) 选取一个点的子集 V ’ ,V ’ 的任意一点的所有能到达的点也在集合 V ’ 内,则称 V ’ 为闭合子图。最大权闭合子图即在G的所有闭合子图中,点权和最大的。最大权闭合子图的求法构建流量网络,将源点S与所有权值为正的点连一条边,容量为其权值;将权值为负的点向汇点 T 连一条容量为其点权绝对值的边。原图中的边保留,容量设为INF。上图所构建出的网络流图如下:结论结论:最小割所产生的两个集合中,源点S所在集合原创 2020-08-19 12:26:59 · 680 阅读 · 1 评论 -
图论---最近公共祖先(LCA)
最近公共祖先(Least Common Ancestors,LCA)问题:给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。原创 2020-07-11 23:01:25 · 1444 阅读 · 1 评论 -
图论---割点,割边与双连通分量
割点和割边割点与割边是在无向图中讨论的问题。割点,即删除某个顶点,原图不再连通,这样的顶点称为割点。有时候也叫 “割顶”。割边是与割点性质类似的边(有时候叫做 “桥”)。求割点和割边同样利用Tarjan算法的 dfn[ ]数组和 low[ ]数组。注意由于不同于求强连通分量,割点和割边是无向图上的问题,因此 low[ ] 数组的含义有细微变化,见后文。Tarjan算法求割点在Tarjan算法求强连通分量的过程中,讨论了 dfn[i] = low[i] 的情况,这意味着结点 i 不能通过其子孙结点回原创 2020-07-08 18:56:25 · 839 阅读 · 0 评论 -
图论---强连通分量与缩点---Tarjan算法
强连通分量在有向图G中,如果每一个点对 (ui,vi),都既存在从 ui 到 vi 的路径,也存在从 vi 到 ui 的路径,则图G成为强连通图,强连通分量定义为有向图中的极大强连通子图。容易证明,强连通分量是对有向图点集的一种划分。强连通分量的求法对于一个有向图G,想求出G有多少强连通分量,以及每个强连通分量包含哪些顶点,一般我们采用Tarjan算法。(实际还有一种叫Kosaraju的算法,但因为它的时间复杂度常数大,因此没有Tarjan优秀)。两个重要属性由于执行Tarjan算法的需要,我们原创 2020-07-08 14:18:56 · 657 阅读 · 0 评论 -
图论--AOV网与拓扑排序
AOV网AOV网,英文(Activity On Vertex Network),是一种用顶点表示活动,有向边表示活动的先后关系的有向无环图。例如:某些课程,是一些课程学习的先决条件,”课程学习“ 这个活动构成严格偏序。很明显AOV网中不应该有环,因为这样意味着一个活动进行的先决条件是自己,这样就出现了矛盾。在有向无环图中,只有出边,没有入边(即入度为0 出度不为0)的顶点叫源点,只有入边,没有出边的点叫 汇点,容易证明有向无环图中一定存在源点和汇点,一会儿会用到这两个概念。拓扑排序对一个有向无环原创 2020-06-13 18:04:56 · 579 阅读 · 0 评论 -
[图论]------[生成树]-------[最小生成树]
最小生成树我们知道,有n个结点,n-1条边的连通图是一棵树,也就是说想连通n个结点,至少需要n-1条边。在实际问题中可能每条边的 “费用”不一样,这样我们想用最小的 “花费”,连接这n个顶点,这是最小生成树研究的问题。Prim算法在学习Prim算法之前,最好能了解Dijkstra算法,在我另一篇博客里,因为二者的贪心思想非常相似,如果能理解Dijkstra,学习Prim会非常容易。正题:解释Prim算法,我准备用和Dijkstra算法一样的 “蓝白点” 思想,只不过蓝点和白点和含义变了:白点表示已原创 2020-06-11 16:19:17 · 250 阅读 · 0 评论 -
图论--最短路径--Floyed算法,Dijkstra算法
最短路径算法给定一个有向图或无向图 G(V,E) 有时我们需要求某个结点到其他所有结点的最短路径的长度,有时需要求出任意两个结点的最短路径。(如果是指定的两个结点间的最短路径可以直接暴搜,思维难度较低)。求某个结点到其他所有结点的最短路径的长度的算法,叫单源最短路径算法,后者叫全源最短路径算法。全源最短路径–Floyed算法设图 G(V,E)(有向无向都无所谓,Floyed算法不关心,下面Dijkstra同)用邻接矩阵来保存。设dis[i][j] 为结点 i 与结点 j 之间的距离,如果i与j之间原创 2020-06-10 12:39:45 · 569 阅读 · 0 评论