学习笔记第三节:差分约束系统

差分约束系统

      在进入正题之前先给大家简单介绍一下差分约束系统主要是解决建立不等式的问题的。

正题

     你看你看xi-xj>=k1 , xj-xk>=k2.那么xi-xk>=?    很明显学过不等式的可以把两边相加一下就可以知道是k1+k2.

     那么现在有加入两条不等式xi-xq>=k3 , xq-xk>=k4     那么现在xi-xk又大于等于多少???很明显是xi-xk>=max(k1+k2,k3+k4).

      为什么,因为大于等于号的并集很明显是max。

学习笔记第三节:差分约束系统_第1张图片

如粉红色部分。所以我们发现这个过程非常像求解最长路的过程。我们从xk到xj建一条k2的边,xj到xi建一条k1的边,同理从xj到xq,xq到xi建边从xk开始跑一遍最长路刚好发现dis[xi]正是我们要求的值max((k1+k2),(k3+k4)).

所以我们要求这种大于关系的问题,就可以用最长路来求解。

我们知道了这个东西,就很容易推出小于等于的式子使用最短路来求的。

那么我们就可以分别求最小值和最大值了。甚至还可以用来判断是否有解(判断是否进入一个点n次)SPFA

相关题目会在后面专题贴出

你可能感兴趣的:(学习笔记)