差分约束

写于 2024.07.11.

对于 \(x_i-x_j\le c\),有两种处理的方式。

  1. 将其变形为 \(x_i\le x_j+c\),执行 add(j,i,c),最后求最短路。
  2. 将其变形为 \(x_j\ge x_i-c\),执行 add(i,j,-c),最后求最长路。

记忆方法:左边只留一项,把其他东西都挪到右边,由右边向左边建边,边权为右边的常数。若式子是"\(\le\)",最后求最短路,否则求最长路。

注意这玩意大概率有负环,负权,可能需要跑 spfa.

posted @ 2025-11-26 19:34  xwxabc  阅读(3)  评论(0)    收藏  举报