第一个问题:
在原图无负环的前提上,为什么增广时的最短路算法不会陷入负环,即为什么增广后的残图不会出现负环?
其实这是一个很浅显的问题,可是我纠结了好长时间,233。
首先假设残图会出现负环,则其出现负环的原因必然是增广后某些反向弧被加入的残图中。
而增广路肯定是无环的,所以这些反向弧只可能是负环的一部分。
设这些反向弧组成的路径为P,P上各反向弧对应的边组成的路径为P',负环的...
分类:
其他好文 时间:
2014-07-09 12:33:29
阅读次数:
221
这题建图没什么特别
x个条件:Sb-Sa
y个条件:Sa-Sb
题目问的是,1和n之间的关系。
有负环的话,整个就不可能成立,输出-1
如果图是连通的(1到n是连通的),就输出d[n]
不连通就是题目中说-2的情况。
原来我们建图一般添加一个附加结点,或者开始就把所有点入队,就是考虑到不连通的问题,所以添加一个没有意义的条件。
#include
#include ...
分类:
其他好文 时间:
2014-07-08 20:26:26
阅读次数:
207
这要是碰上现场赛我得被搞死 从RE到TLE到WA已疯。。
这题建图没有那么直接,通过给出的不等式关系一时想不到怎么建图
所以要对题目给的条件一定程度化简,将不等式两边取对数化简得到Sa-Sb
要注意w取double类型
其次,这题卡时间,根据经验加剪枝:
1、出队次数>sqrt(n)则判断有负环
2、统计总的入队次数,>2n则判断有负环
一般情况下不用这个,因为不严谨
...
分类:
其他好文 时间:
2014-07-08 17:02:17
阅读次数:
220
最短路判断是否出现负环。
SPFA过的,以前用Bellman。那是好久之前跟着一群大神混过去的,都忘了题了。
现在更深刻的理解图了。
给n点,m条正权边,w条负权边。
正权边是无向的,负权边是单向的。
判断是否出现了负环。
用SPFA,当某个点n 次入队了之后,肯定出现了负权。
#include
#include
#include
#include
#incl...
分类:
其他好文 时间:
2014-07-03 16:19:42
阅读次数:
182
二分+SPFA找负环
11090 - Going in Cycle!!
Time limit: 3.000 seconds
#include
#include
#include
#include
#include
using namespace std;
const double INF=1000000000.;
struc...
分类:
其他好文 时间:
2014-07-02 08:30:41
阅读次数:
216
题意是指 从1 到 N 能否保证 到达每个点的时候 能量都为正数。
起点 1 初始100 点能量。
输入是 从 1 ~ N , 分别是 能量,能到m个房间, 分别是 a1,a2,a3,…,am
可以给每个能到达的点 而 产生的边赋权,即能量值。
SPFA 求最长路的变形,出现负环不怕,出现正环就需要一点改动。
vis[]标记是否需要入队,d[] 表示能量,que[]...
分类:
其他好文 时间:
2014-06-30 17:13:59
阅读次数:
303
给一个带权有向图,求其中是否存在环,若存在,输出环上边权的平均值最小的那个的平均值。
点的范围就50,感觉可以很暴力。。但显然超时了
感觉方法好巧妙,二分平均值,将所有边权减去二分的那个值,然后spfa判断是否有负环
若有负环,则图中存在的所有环的边权平均值一定比枚举值大
反之则小,要是无论枚举值多大都没有负环,说明图中没有环。
#include
#include
#incl...
分类:
其他好文 时间:
2014-06-28 07:00:08
阅读次数:
298
又写了个bellman模板一直RE求解啊。。。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f
#define ll __int64
#define mod 1000000007
using namespace...
分类:
其他好文 时间:
2014-06-27 10:27:04
阅读次数:
233
负权指的是一张图中包含一条权重小于0的边。负环指的是一张图中存在权重只和为负数的环。如果一张图中存在负环,那么这张图是没有最短路径的。
那么,假设图中不存在负环,但是有负权,那么最短路径如何求解呢?答案就是使用Bellman-Ford算法,该算法的性能一般。
基本思想
Bellman-Ford算法的基本思想就是对图中所有的边都进行V次“放松”操作。...
分类:
其他好文 时间:
2014-06-27 08:45:57
阅读次数:
195
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1486题意:给出一个有向图,边有权值。找到一个环,使得环上边的权值之和除以环上边的个数最小。思路:二分答案x,每条边权值减去x,之后 找负环。从每个顶点开始DFS,记录到达某个顶点的距离,设...
分类:
其他好文 时间:
2014-06-23 07:12:27
阅读次数:
236