最短路
文章平均质量分 59
亚N程
这个作者很懒,什么都没留下…
展开
-
UVa:10000 Longest Paths (DAG上的最长路)
DAG上的最长路。 如果使用floyd可以将所有边值取反,这样就转化成了最短路问题了。用时0.176s。#include #include #include #include #include #define MAXN 105using namespace std;int main(){ int n,s,kase=0; while原创 2013-11-29 18:50:05 · 765 阅读 · 0 评论 -
POJ:2240 Arbitrage(bellmanford判负环变形题)
跟bellmanford判负环是一样的,只不过这里是要求最大值,而且是乘积,如果最大乘积大于1则说明yes,否则为no。由于这里是求最长路,所以dist数组要初始化为最小即0。还有就是注意将源点初始化为1,我这里源点是0而不是1,这里WA了一次。。 #include#include#include#include#include#includeusing namesp原创 2013-10-21 22:00:26 · 794 阅读 · 0 评论 -
UVa:10803 Thunder Mountain(floyd求多源最短路)
我理解错题意了,其实是水题一道。问你所有顶点之间最短距离中最大的那一个是多少。如果任意两顶点之间没有最短距离那么输出Send Kurdy。floyd算法轻松搞定。。 #include #include #include #include #include using namespace std;int main(){ int T,kase=0; sca原创 2013-11-05 07:49:21 · 689 阅读 · 0 评论 -
UVa:10801 Lift Hopping (Bellmanford求最短路)
其实还是个最短路的问题,但是建图略微麻烦。同一个电梯里相邻停留的楼层之间连边,有多个电梯停留的同一楼层之间连边。比较麻烦,我们可以从边的角度出发因此使用Bellmanford算法。这样求最短路就需要开一个二维数组,用1维表示电梯另1维表示楼层。核心是dist[T][to]>dist[F][from]+w。另外就是注意读取可以停留的楼层要用字符串读。dist[][]要将可以在0层停留的电梯初原创 2013-10-31 08:21:04 · 649 阅读 · 0 评论 -
UVa:567 Risk (Floyd算法求所有顶点之间的最短距离模版题)
注意输出有格式要求。个人感觉用BFS也可以做出来,有空试试。。 #include#include#include#include#include#includeusing namespace std;int main(){ int n,kase=0; while(scanf("%d",&n)!=EOF) {原创 2013-10-21 11:31:33 · 700 阅读 · 0 评论