差分约束系统

http://www.cnblogs.com/sysuwhj/archive/2011/01/26/1945773.html

差分约束题目有两种,一种求最大值,另外一种求最小值。

       (1)当题目是求满足给定不等式的最小值时,就是求图的最长路。

        建图方式如下:a – b >= c,对应于边b –> a w(b, a) = c, 然后求最短路;判断条件是:d[v] <= d[u] + w(u, v), 初始化d[]为-INF. 这样求出的d[]就是满足条件的最小值。原因很简单,因为d[i] 是从-INF开始增大,根据不等式逐渐增大,当满足所有不等式时,那么d[i]肯定是最小的了。

       (2)当题目是求满足给定不等式的最大值时,就是求图的最短路。

        建图方式如下:a – b <= c,对应于边b –> a w(b, a) = c, 然后求最长路;判断条件是:d[v] >= d[u] + w(u, v), 初始化d[]为INF.这样求出的d[]就是最大值。原因和上面一样,因为是从INF逐渐减小的,当满足完所有条件时,就停止。那么d[i]是最大的了。

posted on 2013-04-01 13:06  Sure_Yi  阅读(92)  评论(0编辑  收藏  举报

导航