差分约束

差分约束

在一个由n个变量和m个约束条件组成的系统,如\(x_i-x_j<=k_t\),在不等式组中,要求任意一组特解

将一个不等式变换,\(x_j+k_t>=x_i\)

这看起来很像spfa三角不等式的判断,如果把整个系统看作一张有向图,这个式子又可以写成

\(dis[pos]+val>=dis[to]\)

这个不等式的反向命题

\(dis[pos]+val<dis[to]\)

必须不成立

即当每一个都无法再对其临接点更新时,整个不等式组成立

利用spfa算法对整个图松弛即可得到一个可行的特解

若此不等式组不存在解,一定会有以下情况发生

\(x_i-x_j>k\)

\(x_j-x_i>k\)

放在图中就是一对可以互相松弛的点,成为一个负环,判断图中是否存在负环得到是否有解

自此,spfa可以完美的解决差分约束的问题

​ ——2020.5.22

posted @ 2020-05-22 10:16  nebulyu  阅读(131)  评论(0编辑  收藏  举报