我们已经知道了如何通过Dijkstra算法在非负权图中找到最短路径。即使图中有负权边,我们也知道通过Bellman-Ford算法找到一个从 给定的源点到其它所有节点的最短路径。现在我们将看到一个在线性时间内运行得更快的算法,它可以在有向无环图中找到从一个给定的源点到其它所有可达顶点的 最短路径,又名...
分类:
其他好文 时间:
2014-07-16 20:24:55
阅读次数:
199
Arbitrage
Problem Description
Arbitrage is the use of discrepancies in currency exchange rates to transform one unit of a currency into more than one unit of the same currency. For example, ...
分类:
其他好文 时间:
2014-07-16 10:05:49
阅读次数:
260
Wormholes
Time Limit: 2000MS
Memory Limit: 65536K
Total Submissions: 29971
Accepted: 10844
Description
While exploring his many farms, Farmer John has discovered a ...
分类:
其他好文 时间:
2014-07-15 12:40:21
阅读次数:
341
#include
#include
#include
using namespace std;
#define inf 0x7ffffff
struct Edge
{
int u,v,cost;
}edge[2000];
int pre[200];//父亲
int dis[200];//到源点的距离
int n,m,src;//点的个数,边数,源点
bool relax(int...
分类:
其他好文 时间:
2014-07-14 12:59:28
阅读次数:
265
本题其实也可以使用SPFA算法来求解的,不过就一个关键点,就是当某个顶点入列的次数超过所有顶点的总数的时候,就可以判断是有负环出现了。
SPFA原来也是可以处理负环的。
不过SPFA这种处理负环的方法自然比一般的Bellman Ford算法要慢点了。
#include
#include
#include
const int MAX_N = 501;
const int MAX_M =...
分类:
其他好文 时间:
2014-07-13 18:16:50
阅读次数:
352
本题就是需要检查有没有负环存在于路径中,使用Bellman Ford算法可以检查是否有负环存在。
算法很简单,就是在Bellman Ford后面增加一个循环判断就可以了。
题目故事很奇怪,小心读题。
#include
#include
#include
const int MAX_N = 501;
const int MAX_M = 2501;
const int MAX_W...
分类:
其他好文 时间:
2014-07-13 15:48:23
阅读次数:
212
题目大意: 给你各国的货币名称,和国家与国家之间兑换的汇率,问你通过一系列的兑换能否是自己的财富增加。解题思路: 先建图,因为给的是字符串不是阿拉伯数之间的联系,所以建图可以用mapmp 建图。赋值给结构体中的u,v。然后利用bellman—ford算法,因为如果财富能够通过兑换增值说明会有一条.....
分类:
其他好文 时间:
2014-07-11 18:24:14
阅读次数:
159
【题意】:给出一张有向图(信息为点数,边数,每条边的起点终点和权值),然后可以让你做任意次如下操作:选择任意节点v和一个数值d,使以v为终点的边的权值减d,以v为起点的边的权值加d,最后要满足两个条件:这些边的权值为非负,这些边中权值最小的边的权值尽量大。【知识点】:Bellman-Ford+差分约...
分类:
其他好文 时间:
2014-07-09 16:11:59
阅读次数:
125
http://poj.org/problem?id=2240
深刻体现了自己代码能力有问题外加改模板能力有问题,外加Debug有问题。以后做到:
1、算法原理可以轻易弄出来,
2、代码模板自己收集各种用法,以及已经的做过的改变的方法;
3、没有完整清晰的思路不敲代码;
4、在Debug时没有基本绝对的把握,不点击“编译+运行”,不乱试
回到这道题:
我主要是想把Bellman...
分类:
其他好文 时间:
2014-07-08 19:19:54
阅读次数:
199
最短路判断是否出现负环。
SPFA过的,以前用Bellman。那是好久之前跟着一群大神混过去的,都忘了题了。
现在更深刻的理解图了。
给n点,m条正权边,w条负权边。
正权边是无向的,负权边是单向的。
判断是否出现了负环。
用SPFA,当某个点n 次入队了之后,肯定出现了负权。
#include
#include
#include
#include
#incl...
分类:
其他好文 时间:
2014-07-03 16:19:42
阅读次数:
182