标签:最小 超过 路径 为什么 更新 约束 三角形 原理 spfa
(以下(a,b,c)表示从a向b连一条权值为c的边
对于图论的最短路径,有:d(v) <= d(u) + w(u, v) ,而差分约束系统的解法利用到了单源最短路径问题中的三角形不等式。
移项得:d(v) - d(u) <= w(u, v),是不是和上面的x-y<=b的一样?
分两种情况讨论
我们把题目给出的不等式转化成x-y<=b的形式,把d设成无穷大,连一条(y,x,b)的边,使用最短路
为什么?
d[]一开始为无穷大,图最短路更新的条件为: if(d[v]>d[u]+w(u,v)) d[v]=d[u]+w(u,v);
通过不断的松弛,使得d的值不断变小,直到满足所有条件时,就是最大的了
我们把题目给出的不等式转化成x-y>=b的形式,把d设成无穷小,连一条(y,x,b)的边,使用最长路
(1)a==b => a>=b , a<=b
(2)a-b<c (a,b为整数) => a-b<=c-1
(3)a-b>c (a,b为整数) => a-b>=c+1
在SPFA中,如果一个点入队超过n(点的个数)次,那么该图存在负(正)环
标签:最小 超过 路径 为什么 更新 约束 三角形 原理 spfa
原文地址:http://www.cnblogs.com/lher/p/7123143.html