题意:N个顶点, M条双向边, W条权值为负的单向边。求是否存在负环。思路:首先你要懂bellman-ford或spfa。。这是基础的spfa判断是否存在负环的题,存在负环的节点会重复入队(因为最短路在不断变小), 所以只要有节点重复入队超过n次,即可判断存在负环(即开一个数组记录节点入队次数)。总...
分类:
其他好文 时间:
2014-07-24 09:48:13
阅读次数:
305
不同性质的图中,所采取的策略有所不同,自然存在各样的求最短路径的算法。* 无向无权图:BFS* 有向正权图:Dijkstra* 有向无负环图:Bellman-Ford(单点),Floyd-Warshall(任意两点)* 有向无环图(dags): 基于动态规划的算法。## 广度优先搜索(BFS)对于无...
分类:
其他好文 时间:
2014-07-23 20:47:15
阅读次数:
261
Description
I I
U P C
2 0
06
Problem G: Going in Cycle!!
Input: standard input
Output: standard output
You are given a weighted directed gra...
分类:
其他好文 时间:
2014-07-22 00:28:36
阅读次数:
217
嘛,虽然是一道水题+模板题,不过还是学到了很多东西的,记录一下。首先题目给出的不等式是小于,但是差分约束系统只能处理小于等于的情况,所以要转化成小于等于的进行处理。对于整数处理方法非常简单= =然后是找负环的情况,其实不需要考虑图连不连通,只要一开始就把所有的点的d置成0,然后都push进队列里面就...
分类:
其他好文 时间:
2014-07-22 00:13:35
阅读次数:
182
差分约束(最短路)
不等式用最短路来求。问题是好难找约束条件——建立不等式。
题意问最少有多少兵。即建立好各点的约束条件,求0~N 的最短路。
有负环得判断入队次数。
反正还没多大理解差分约束,Hurry up!
#include
#include
#include
#include
#include
#include
#include
#include
#inc...
分类:
其他好文 时间:
2014-07-21 16:31:02
阅读次数:
198
#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long ...
分类:
其他好文 时间:
2014-07-18 19:22:03
阅读次数:
157
此题说多了都是泪,明明知道SPFA能找负环,却偏偏用了DFSSPFA调试中
分类:
其他好文 时间:
2014-07-16 20:49:58
阅读次数:
125
本题其实也可以使用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
考试的时候写的dfs找自环然后求平均值当时感觉复杂度不是太高结果Wa和T了一些后只有40分。。。正解是二分答案再将所有边减去答案后用SPFA找有无负环即可 1 #include 2 #include 3 #include 4 using namespace std; 5 #define N 6...
分类:
其他好文 时间:
2014-07-13 00:47:36
阅读次数:
293