差分约束

差分约束系统是一种特殊的n元一次不等式组

它包含n个变量x1~xn以及m个约束条件

每个约束条件都是两个变量做差构成的

形如xi - xj <= ck (其中ck是常数)

可变形为xi <= xj + ck

这与单源最短路中的三角形不等式dis[ i ] <= dis[ j ] + w [ j ] [ i ] 相似

因此可以吧每个变量xi看作有向图中的一个结点i

对于约束条件xi - xj <= ck

从结点 j 向结点 i 连一条权值为ck的有向边

于是求最短路就可了

求最小值,不等式变形为“<=”,跑最长路

求最大值,不等式变形为“>=”,跑最短路

原文地址:https://www.cnblogs.com/darlingroot/p/11221521.html