适用范围:给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而Bellman-Ford算法的复杂度又过高,SPFA算法便派上用场了。 我们约定有向加权图G不存在负权回路,即最短路径一定存在。当然,我们可以在执行该算法前做一次拓扑排序,以判断是否存在负权回路,但这不是我们讨论的重点。...
分类:
编程语言 时间:
2014-11-16 00:30:13
阅读次数:
253
水水更健康。。。话说回来,这真的是水题?T T首先,容易想到:令ans1 = t1为源,到s和t2的距离之和;ans2 = t2为源,到s和t1的距离之和ans = min(ans1, ans2)然后,开始写单元最短路。。。spfa。。。 1 /***************************...
分类:
移动开发 时间:
2014-11-15 22:57:44
阅读次数:
364
Problem Description在每年的校赛里,全部进入决赛的同学都会获得一件非常美丽的t-shirt。可是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以如今他们想要寻找最短的从商店到赛场的路线,你能够帮助他们吗?Input输入包含多组数据。每组数据第一行是两个整数...
分类:
其他好文 时间:
2014-11-13 09:22:48
阅读次数:
157
HDU 3268 Columbus’s bargain(最短路 Spfa)...
分类:
其他好文 时间:
2014-11-12 21:17:38
阅读次数:
319
计算几何+SPFA我已经不想看我的提交记录了。。。。HDU 我起码WA了2页。。。。都是浮点数惹的祸。const double eps=1e-4;abs(a-b)#include#include#include#include#include#include#include#includeusing...
分类:
其他好文 时间:
2014-11-12 17:49:36
阅读次数:
255
题目:一个城市有i个小镇,其中有一些有消防站,现在想增加1个消防站,使得所有小镇到最近的消防站的距离中的最大值最小。
分析:图论,最短路。利用spfa算法可以高效解决本问题。
首先,利用已有的消防站,计算多源最短路径,储存在集合dist中;
然后,枚举所有顶点,计算单元最短路,存储在集合newd中,则得到新的多元最短路集合S;...
分类:
其他好文 时间:
2014-11-12 13:49:27
阅读次数:
171
存反图,从终点dfs一遍,记录下无法到达的点。然后枚举这些记录的点,把他们的出边所连的点也全部记录。以上这些点都是无法在最短路中出现的。所以把两个端点都没被记录的边加进图里,跑spfa、BFS什么的随意。 1 #include 2 #include 3 #include 4 #include 5 u...
分类:
其他好文 时间:
2014-11-11 18:02:04
阅读次数:
180
解题报告求最长路。用SPFA求最长路,初始化图为零,dis数组也为零#include #include #include #include #include #define inf 99999999#define N 110using namespace std;int mmap[N][N],dis...
分类:
其他好文 时间:
2014-11-11 12:39:12
阅读次数:
117
HDU 3313 Key Vertex
题目链接
题意:一个有向无环图,求s,t之间的割点
思路:先spfa找一条最短路出来,如果不存在,就n个都是割点。
然后每次从s进行dfs,找到能经过最短路上的最远点,然后这个点就是割点,然后下次在以这个为起点dfs,不断迭代直到找到t为止
代码:
#include
#include
#include
#include ...
分类:
其他好文 时间:
2014-11-09 18:07:12
阅读次数:
180
注:模板以hdu 2544 为例
Problem Description
在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?
Input
输入包括多组数据。每组数据第一行是两个整数N、M(N...
分类:
其他好文 时间:
2014-11-07 20:49:40
阅读次数:
305