差分约束

\((1)求不等式的可行解\\ 源点需要满足的条件: \color{Red}{从源点出发,一定可以走到所有的边.}\)

步骤
  • \(先将每个不等式x_i\le x_j + c_k,转化为一条从x_j走到x_i,长度为c的一条路径.\)
  • \(找一个虚拟源点,使得该源点一定可以遍历所有边.\)
  • \(从源点求一遍单源最短路径\)
    • \(结果1:如果存在负环,则原不等式无解.\)
    • \(结果2:如果没有负环,则dist[i]就是原不等式组的一个可行解.\)
求最大值和最小值

\(结论:\color{Red}{如果求的是最小值,应该求最长路;如果求的是最大值,应该求最短路.}\)

\(问题:如何转化x_i\le c,c为常数,这类的不等式\)

\(方法:建立一个虚拟源点,0,然后建立0 \rightarrow i的边,边长为c.\)

\(以求x_i的最大值为例,求所有从x_i出发,构成的不等式链\\ \color{Red}{x_i\le x_j+c_1\le x_k +c_2+c_1\le .....\le \sum{c_i}}\)

\(所计算的上界,最终x_i的最大值为所有上界的最小值.\)

posted @ 2021-02-18 00:53  phr2000  阅读(29)  评论(0编辑  收藏  举报