博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

差分约束系统

Posted on 2018-11-09 18:40  MwingFly  阅读(130)  评论(0编辑  收藏  举报

差分

  差分就是一种找出不等式然后将不等式转化为解题方法的算法。

差分的关键

  1. 构造不等式
  2. 通过不等式连边

差分约束系统中源点到每个点的距离确定

关于Dist[]的初始化

  1. 如果将源点到各点的距离初始化为0,最终求出的最短路满足它们之间相互最接近了。
  2. 如果将源点到各点的距离初始化为INF(无穷大),其中之1为0,最终求出的最短路满足它们与该点之间相互差值最大。
  3. 差分约束系统的确立要根据自己确定的约束条件,从约束点走向被约束点

构造不等式

不等条件一般分两种情况:

  1. 距离。
  2. 前N项和。

如何连边

连边一般有两种方法:

  • 第一种是连边后求最长路的方法。
  • 第二种是连边后求最短路的方法。

例:d[x]-d[y]≥z

  • 如果想连边后求最长路,那么将不等式变形为这种形式:d[x]≥d[y]+z(y——x连一条权值为z的边)
  • 如果想连边后求最短路,那么将不等式变形为这种形式:d[y]≤d[x]-z(x——y连一条权值为-z的边)
  • 如果是别的不等式,也可以根据情况变形。但是要保证的是两个变量(x,y)的系数一定要是正的。而常量则不一定。