关于差分约束系统,今天又回顾了一下,发现了新的知识。
如果要求的是最大值,也就是确定上界,那么就用最短路来求解,例如X-Y<=5&&X-Y<=9,那么X-Y的最大值不可能是9,而最大只可能是5,所以确定最大值用的是最短路。
相反,如果要求最小值,也就是确定下界,那么用的是最长路,例如X-Y>=3&&X-Y>=8,那么X-Y的最小值不可能是3,最小也会是8,所以确定最小值用的是最长路。
关于有向边和权值的确定:
不管是求最短路(上界,最大值)还是最长路(下界,最小值),先把式子统一化成 X-Y<=C的形式。
如果要求的是最大值(最短路),那么就建立<Y,X>的有向边,权值为C
如果要求的是最小值(最长路),那么就建立<X,Y>的有向边,权值为-C
必要的时候还要自己添加源点,这个只能按题目来了。
某些时候还要按照实际情况建立有向边。