差分约束系统
如果一个系统由n个变量和m个约束条件组成,形成m个形如ai-aj≤k的不等式(i,j∈[1,n],k为常数)
则称其为差分约束系统(system of difference constraints)。
亦即,差分约束系统是求解关于一组变量的特殊不等式组的方法。
边的建立与关系转化
(求a[n] - a[1]最大值【1】)
- a[i] - a[j] >= k
a[i] >= a[j] + k
a[j] ------ (k) ------> a[i] 求最短路
- a[i] - a[j] <= k
a[j] >= a[i] - k
a[i] --- (-k) -------> a[j]求最短路
- a[i] - a[j] > k
a[i] - a[j] >= k + 1
a[j] ------ (k+1) ------> a[i] 求最短路
- a[i] - a[j] < k
a[i] - a[j] <= k - 1
a[i] ------ (1 - k) ------> a[j] 求最短路
- a[i] - a[j] == k
a[i] - a[j] >= 0
a[j] - a[i] >= 0
a[i] ------ 0 ------> a[j] 求最短路
a[j] ------ 0 ------> a[i] 求最短路
【1】注:如果求最大值 则转换为 <= 求最长路
另:图未必联通
算法选择 spfa
判断无解
1)a[1]与a[n]无约束关系:
a[n] == inf; (求最短路时)
2)存在负环:
在SPFA中体现为某一点的入队次数大于节点数
相关题目: