![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 60
手可摘星辰!!
这个作者很懒,什么都没留下…
展开
-
Tarjan算法 求解有向图强连通分量
一.算法简介 Tarjan 算法一种由Robert Tarjan提出的求解有向图强连通分量的算法,它能做到线性时间的复杂度。 我们定义: 如果两个顶点可以相互通达,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量(strongly connected components)。 例如:在上图中,...原创 2019-04-29 14:28:12 · 315 阅读 · 0 评论 -
次短路
转载: https://www.cnblogs.com/star-eternal/ 旅行团每天固定的从S城市出发到达T城市,为了省油要求尽量走最短路径或比最短路径长1单位距离的路径,求满足条件的路径条数。 如上图:S=1,T=5,则有两条最短路,1->2->5和1->3->5 长度都为6,另外还有一条长度为7, 1->3->4->5 输入: 第一行一个数...转载 2019-05-19 12:39:31 · 115 阅读 · 0 评论 -
Floyd + 传递闭包
一,Floyd核心: for (int k = 1; k <= n; k++) {//n为节点个数 for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { if (dis[i][k] + dis[k][j] > dis[i][j]) dis[i][j] = dis[i][k] + dis...原创 2019-05-17 18:21:40 · 761 阅读 · 0 评论 -
2019 山东省赛 ZOJ4124 Median Floyd+ 传递闭包
题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4124 传递闭包 没想到Floyd 还有这种骚操作 学到了 我的博客 https://blog.csdn.net/flymoyu/article/details/90298395 看完上面的讲解 我想你应该已经会了 如果不会 直接看代码 相信你可...原创 2019-05-17 19:20:28 · 213 阅读 · 0 评论 -
最短路总结 Dijkstra Dijkstra+堆优化 Floyd 单源最短路(Bellman_Ford)SPFA(队列优化)
算法运用到了向前星知识,一种边集数组 https://blog.csdn.net/flymoyu/article/details/90319846 Dijkstra 单源最短路---------权值必须非负 单源最短路径,Dijkstra 算法,邻接矩阵形式,复杂度为O(n^2) 求出源 start到所有点的最短路径,传入图的顶点数,和邻接矩阵 mp[][] 返回各点的最短路径 lowcost...原创 2019-05-18 19:54:54 · 383 阅读 · 0 评论 -
向前星--边集数组
我们首先来看一下什么是前向星. 前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到大排序, 并记录下以某个点为起点的所有边在数组中的起始位置和存储长度,那么前向星就构造好了. 用len[i]来记录所有以i为起点的边在数组中的存储长度. 用head[i]记录以i为边集在数组中的第一个存储位置. 那么对于下图: 我们输入边的顺序为: 1 2 2 ...转载 2019-05-18 20:21:01 · 1164 阅读 · 0 评论