关于差分约束的一点理解

Posted Tenderfoot

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于差分约束的一点理解相关的知识,希望对你有一定的参考价值。

引例

给定$n$个变量和$m$个不等式,每个不等式形如$x_i-x_j\\leqslant a_k$,求$x_{n-1}-x_0$的最大值$0<i,j\\leqslant n$

$x_1-x_0\\leqslant 2 \\\\x_2-x_0\\leqslant 7 \\\\x_3-x_0\\leqslant 8 \\\\x_2-x_1\\leqslant 3 \\\\x_3-x_2\\leqslant 2 $

变形得到

$x_3-x_0\\leqslant 8 \\\\x_3-x_0\\leqslant 9 \\\\x_3-x_0\\leqslant 7$

对于每个不等式$x_i-x_j\\leqslant a_k$,对结点$j$和$i$建立一条$j\\rightarrow i$的有向边,边权为$a_k$,求$x_{n-1}-x_0$的最大值即为求$0$到$n-1$的最短路

类似于SPFA的松弛操作

SPFA的松弛操作:如果$d_u+w(u,v)<d_v$,那么更新$d_v=d_u+w(u,v)$

差分约束

数形结合

变形原不等式得到

$x_i-x_j\\leqslant a_k$得到$x_i\\leqslant x_j+a_k$。

令$i=v,j=u,d=x$,可以得到$d_v\\leqslant d_u+w(j,i)$

SPFA的松弛操作$if(d_u+w(u,v)<d_v)$那么$d_v=d_u+w(u,v)$,即为$d_u+w(u,v)\\geqslant d_v$ 

三角不等式

$B-A\\leqslant c①\\\\C-B\\leqslant a②\\\\C-A\\leqslant b③$

 

 

 要求$C-A$的最大值,只需$①+②$,即可得到$C-A\\leqslant a+c$,本质上就是求$min(b,a+c)$,三角不等式推广到$m$个,变量推广为$n$个,就变成$n$个点$m$条边的最短路问题

判断是否有解

最短路会出现负权圈或者根本就不可达的情况,所以在不等式组转化的图上也有可能出现三种情况

·有解

·无解

·有无限多解

$x_t-x_s$最大值不存在

有负环

$x_t-x_s$最大值无限大

不相连

最小值问题

改变符号即可

不等式的标准化

既有$ \\leqslant$又有$ \\geqslant$

如果需要求的是两个变量差的最大值,那么需要将所有不等式转变成$ \\leqslant $的形式,建图后求最短路
相反,如果需要求的是两个变量差的最小值,那么需要将所有不等式转化成$ \\geqslant $,建图后求最长路

形如$A-B=c$

转化为$A-B\\leqslant c①\\\\A-B\\geqslant c②$,建图

整数域,形如$A-B<c$

变形,整理成$A-B\\leqslant c-k(k \\in Z)$

 

 

以上是关于关于差分约束的一点理解的主要内容,如果未能解决你的问题,请参考以下文章

POJ1716Integer Intervals——差分约束||贪心

差分约束

关于图论差分约束

差分约束讲解

浅谈差分约束系统

差分约束模板