什么是差分约束系统?
由n个变量,m个约束条件(型如Xj-Xi<=Bk,这种特殊的不等式),组成的系统,称为差分约束。
简单来说,就是求解m个特殊不等式的可行解情况。可以转化为最短路问题来解决。
为什么可以转化成最短路问题来求解???
由于约束条件的特殊性,形如Xj-Xi<=Bk,与最短路中的d(v0,vj)<=d(v0,vj)+d(vj,vi)。非常的相似。上图解释。
感觉最重要一个很抽象的问题和一个很具体的问题联系起来,还是非常的难的,慢慢的理解吧。
注意点:
1. 如果要求最大值想办法把每个不等式变为标准x-y<=k的形式,然后建立一条从y到x权值为k的边,变得时候注意x-y<k =>x-y<=k-1
如果要求最小值的话,变为x-y>=k的标准形式,然后建立一条从y到x的k边,求出最长路径即可。
2.如果权值为正,用dj,spfa,bellman都可以,如果为负不能用dj,并且需要判断是否有负环,有的话就不存在。