差分约束

· · 个人记录

洛谷博客不再更新,搬迁至 差分约束

主要内容

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

差分约束系统中的每个约束条件 x_i-x_j\le c_k 都可以变形成 x_i\le x_j+c_kx_j\ge x_i-c_k ,这与单源最短路中的三角形不等式非常相似。因此,我们可以把每个变量 x_i 看做图中的一个结点,对于每个约束条件连边。

需要注意的是,有些题目看能会对解的上、下界进行约束,因此我们需要对这些条件处理(这里只考虑对于这 n 个元素 只约束了上界只约束了下界 ):

dist[0]=0 ,若存在负环 / 正环,则不等式无解,否则 x_i=dist[i] 是该差分约束系统的一组解 。

最坏情况下(存在负环 / 正环)复杂度为 O(nm)

注意:整个图不一定是联通的!

例题