差分约束—学习笔记

差分约束系统(system of difference constraints)

如果一个系统由n个变量和m个约束条件组成
其中每个约束条件形如xj-xi<=bk(i,j∈[1,n],k∈[1,m])
则称其为差分约束系统。
亦即,差分约束系统是求解关于一组变量的特殊不等式组的方法。

通俗一点地说,差分约束系统就是给定一些不等式的组
而我们的目标是通过给定的约束条件
求出最大值或者最小值或者差分约束系统是否有解


差分约束系统可以通过图论求解

对于型如 x v x u <= k 的不等式
我们从u到v连一条权值为k的边

若约束条件型如 x v x u = k
那么可以转化为 x v x u <= k x v x u >= k x u x v <= k
可以连接两条边权相反的边
或者可以连接两条边权为0的边

建图后若图中存在负环,则无解
若要求差分约束系统的最小解,则在图中跑最长路
反之则跑最短路

特别要注意的图有可能不连通
这时候我们只需要连接一个超级源点即可


洛谷P1993 小K的农场【差分约束】题解

BZOJ2330 || 洛谷P3275 [SCOI2011]糖果【差分约束】题解

BZOJ1202 || 洛谷P2294 [HNOI2005]狡猾的商人【差分约束】题解

猜你喜欢

转载自blog.csdn.net/niiick/article/details/81134243