http://acm.hdu.edu.cn/showproblem.php?pid=1317 题意: 给出一个有向图,每到达一个点,都会加上或减去一些能量,我们要做的就是判断从1出发是否能到达n。初始能量有100,行走的途中能量不能小于等于0。 思路: 首先我们用floyd来判断一下1和n之间是否有 ...
分类:
其他好文 时间:
2017-04-05 22:28:31
阅读次数:
261
很多时候给定的图存在负权边,但是Dijkstra算法无能为力,而Bellman-Ford算法的复杂度有过高, 所以就要用到这篇博客讲述的算法——SPFA算法 众所周知 Bellman -Ford 算法会对每条边进行 n - 1 次检查,但是在这些检查过程中,有许多检查是没有必要的.事实上, 唯一应该 ...
分类:
编程语言 时间:
2017-04-04 17:26:11
阅读次数:
171
两个算法都是跟求图的有源最短路径有关。Dijkstra主要针对的是无负权值节点的图,而Bellman-Ford算法则是可以处理有负权值的有向图的最短路径问题。两者都用到了一个“松弛计算”的方法,也就是在遍历图的顶点和边的过程中修改距离数组的值,从而来找出最短路径。 Dijkstra算法针对无负权值的 ...
分类:
编程语言 时间:
2017-04-01 09:49:26
阅读次数:
200
#include #include #include #define MAX 100 #define INF 0x3f3f3f using namespace std; //有向图 struct Edge { int u,v,cost; }e[MAX]; int dist[MAX]; //最短路径 ... ...
分类:
编程语言 时间:
2017-03-29 21:14:30
阅读次数:
136
题目链接:http://poj.org/problem?id=2240 floyd: 也可用bellman-ford判"正环"。 或者spfa。 ...
分类:
其他好文 时间:
2017-03-25 11:08:30
阅读次数:
233
SPFA是队列优化后的Bellman-Ford,用于求带负权边的最短路,然而传说中O(k*n)的复杂度好像是错误的。 ...
分类:
编程语言 时间:
2017-03-22 23:31:07
阅读次数:
231
题目链接:https://uva.onlinejudge.org/external/108/10806.pdf 题意:无向图,从1到n来回的最短路,不走重复路。 分析:可以考虑为1到n的流量为2时的最小花费; 建图: 一个点到一个点的容量为1,费用为距离。 ...
分类:
其他好文 时间:
2017-03-13 21:59:54
阅读次数:
150
题目链接:http://poj.org/problem?id=3259 题目就是问你能否回到原点而且时间还倒回去了。题目中有些路中有单向的虫洞能让时间回到过去 所以只要将虫洞这条边的权值赋为负然后再判断有没有负环就行了。 ...
分类:
其他好文 时间:
2017-03-07 23:01:12
阅读次数:
202
看了别人的博客,总结得很好。http://blog.csdn.net/xu3737284/article/details/8973615 Bellman-Ford算法可以大致分为三个部分第一,初始化所有点。每一个点保存一个值,表示从原点到达这个点的距离,将原点的值设为0,其它的点的值设为无穷大(表示 ...
分类:
编程语言 时间:
2017-02-27 17:50:33
阅读次数:
176
题目大意:原题链接 当排队等候喂食时,奶牛喜欢和它们的朋友站得靠近些。FJ有N(2<=N<=1000)头奶牛,编号从1到N,沿一条直线站着等候喂食。奶牛排在队伍中的顺序和它们的编号是相同的。因为奶牛相当苗条,所以可能有两头或者更多奶牛站在同一位置上(即间距可能为0)。即是说,如果我们想象奶牛是站在一 ...
分类:
其他好文 时间:
2017-02-22 16:39:05
阅读次数:
268