最短路最常用的算法有: 单源最短路: Bellman-Ford 算法,Dijkstra 算法,SPFA 算法。 任意两点间最短路:Floyd算法。 Bellman-Ford 可以处理有负边的情况,也可以处理负圈。最多进行V - 1次迭代操作,如果第V次还进行更新操作,说明存在负圈。 Dijkstra ...
分类:
其他好文 时间:
2017-10-11 23:38:47
阅读次数:
168
想必大家一定会Floyd了吧,Floyd只要暴力的三个for就可以出来,代码好背,也好理解,但缺点就是时间复杂度高是O(n³)。 于是今天就给大家带来一种时间复杂度是O(n²),的算法:Dijkstra(迪杰斯特拉)。 这个算法所求的是单源最短路,好比说你写好了Dijkstra的函数,那么只要输入点 ...
分类:
编程语言 时间:
2017-10-10 19:16:08
阅读次数:
233
割点, 桥, 点双连通分量, 边双连通分量, 强连通分量 割点, 桥, 点双连通分量, 边双连通分量, 强连通分量这些概念都是原图的一个诱导子图. 割点, 桥, 双连通分量, 边双连通分量是无向图的相关概念, 而强连通分量是有向图的相关概念. $low$ 和 $dfn$ 的求法类似, $dfn[x] ...
分类:
编程语言 时间:
2017-10-10 10:07:00
阅读次数:
278
分析:很容易想到先搞一遍单源最短路径,然后只保留最短路径上的边,接下来容易想到最小生成树,但是因为有的边只删了一个方向,所以变成了有向图了,要求的就是最小树形图,比较麻烦而且容易T。。。 实际上,考虑在连好的图里加一个点,肯定是加连向它的最短边,类似贪心的思路,所以结果就是删完后的图中,每个点的最小 ...
分类:
其他好文 时间:
2017-10-07 16:08:18
阅读次数:
167
顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情 ...
分类:
编程语言 时间:
2017-10-06 11:41:33
阅读次数:
163
基于上次发blog,有位朋友让我多写些基本概念,就利用这次详解伟大的SPFA算法来谈。以下是百科上的算法简介,很清楚,看一遍再继续对理解程序很有帮助!(当然后面我也会解释) SPFA(Shortest Path Faster Algorithm)(队列优化)算法是求单源最短路径的一种算法,它还有一个 ...
分类:
编程语言 时间:
2017-10-04 23:54:04
阅读次数:
415
题目:【模板】单源最短路径(洛谷_3371) 本文由Yzyet编写,网址为www.cnblogs.com/Yzyet。非Yzyet同意,禁止转载,侵权者必究。 ...
分类:
其他好文 时间:
2017-10-03 12:02:47
阅读次数:
125
最短路问题分为单源最短路问题和多源最短路问题,给出顶点数和边数,以及边的情况(包括起点和终点及权值),让我们计算从某个顶点到某个顶点的最短路径。 先总结一下只有五行的Floyd算法,一句话概括就是:从i号顶点到j号顶点只经过前k号点的最短路程。 模板题:http://www.cnblogs.com/ ...
分类:
其他好文 时间:
2017-09-28 00:28:36
阅读次数:
265
话说昨天练习的时候,有一道题是要求强连通分量预处理的。然而那时我还不知道tarjan算法为何物,于是糊出了如下求强连通分量的算法。(时间复杂度O(n*logn)) 于是用这个算法写了那道题,居然AC了。(那题还要求单源最短路,卡不掉我的O(n*logn)预处理2333) (注:这个辣鸡算法就是用并查 ...
分类:
编程语言 时间:
2017-09-24 20:20:05
阅读次数:
221
1, 数据结构三要素: 1,逻辑结构:线性和非线性 2,存储结构:顺序,链式,索引,散列 3,数据运算:算法 具体时间复杂度与问题的规模和初始条件相关,分最佳和最大 2, 线性表: 无头结点: 头插法:s->data=ch;s->next=head;head=s; 尾插法:rear->next=s; ...
分类:
其他好文 时间:
2017-09-23 21:27:30
阅读次数:
219