题目描述 ~~毒瘤数据~~要求 判负环 分析: 还是融合了不少题解的思想的。 负环定义 : ~~权值和为负的环~~ //在网络上并没有找到一个官方定义,暂且这么理解。 SPFA: 支持负边权的情况. spfa是最短路算法.如果一个环上的边权有负的,我们可以重复走这条路来获得更小的边权,所以这可以作为 ...
分类:
其他好文 时间:
2018-09-10 11:10:31
阅读次数:
235
<题目链接> 题目大意: 有向图,求从起点1到每个点的最短路然后再回到起点1的最短路之和。 解题分析: 在求每个点到1点的最短路径时,如果仅仅只是遍历每个点,对它们每一个都进行一次最短路算法,那么即使是用了堆优化的dijkstra,时间复杂度也高达O(n^2 logn),而本题有1000000个点, ...
分类:
其他好文 时间:
2018-08-28 01:06:55
阅读次数:
214
用途: 解决单源最短路径问题(已固定一个起点,求它到其他所有点的最短路问题) 算法核心(广搜): (1)确定的与起点相邻的点的最短距离,再根据已确定最短距离的点更新其他与之相邻的点的最短距离。 (2)之后的更新不需要再关心最短距离已确定的点 三种实现模板: 一、矩阵朴素版 二、vector简单版 三 ...
分类:
编程语言 时间:
2018-08-24 20:47:10
阅读次数:
178
Bellman-Ford算法是一种单源最短路算法,允许图中有负边权。Bellman-Ford算法的效率相对较低,但是很容易编写,也很好理解。比较流行的SPFA算法其实就是他的队列优化。Bellman-Ford算法的流程大体是这样,先将源点的最短路设置为0,将其他结点的最短路设置为inf,然后进行n- ...
分类:
编程语言 时间:
2018-08-21 21:14:37
阅读次数:
176
SPFA是一种单源最短路算法,与Dijkstra不同的是,他可以处理负边权,而且能判断负环。SPFA是Bellman算法的队列优化,在过程上和BFS有些类似。SPFA的算法流程大时这样的,先将源点加入队列中,只要队列不为空,取出队首元素,用他去更新与他相连的点的最短路,若成功更新且被更新的点不在队列 ...
分类:
编程语言 时间:
2018-08-20 23:49:56
阅读次数:
342
最短路算法简单模板 一.floyed算法 首先对于floyed算法来说就是最短路径的动态规划解法,时间复杂度为O(n^3) 适用于图中所有点与点之间的最短路径的算法,一般适用于点n较小的情况。 Floyed算法有三层循环,循环的层次先后顺序也是比较重要的,分别为k ,i,j;因为dis[k][i][ ...
分类:
编程语言 时间:
2018-08-20 21:41:19
阅读次数:
216
题目链接:http://poj.org/problem?id=2449 题目: 题意:求有向图两点间的k短路。 思路:最短路+A*算法 代码实现如下: ...
分类:
编程语言 时间:
2018-07-27 20:56:13
阅读次数:
171
抱歉这几天 晚上一直认真 (颓废)打模拟赛 一直没写博客 然后今天学了最短路 然后 马上过来码一下 以下内容 有的是搬得那些大佬们得博客 也谢谢他们 1.Floyd 感觉 Floyd 是比较常见的 最短路算法 而且也挺好用得 算法思想原理: Floyd算法是一个经典的动态规划算法。用通俗的语言来描述 ...
分类:
其他好文 时间:
2018-07-19 21:11:40
阅读次数:
197
第一道差分约束的题目,感觉有点懵。 差分约束有一点类似于拓扑排序建图的思想。 先给出解题套路: 形如$a \geq b + c$的满足一种最长路的性质,所以可以使用最长路解决,可以解决求最小的问题。 形如$a \leq b + c$的满足最短路的性质,使用最短路算法可以解决,可以解决求最大的问题。 ...
分类:
其他好文 时间:
2018-07-08 01:04:34
阅读次数:
149
"P1993 小K的农场" 这个题,涉及到的知识点是差分约束。 差分约束,是用来判断不等式是否有解集和求出一组特解的一种方法。 具体是使用最短(长)路算法。 观察最短路算法,有一个类似与三角形三边关系的不等式。 $$dis[a]+weight =dis[b]$$ 其中a与b之间直接连了一条边权为we ...
分类:
其他好文 时间:
2018-07-01 20:26:46
阅读次数:
159