【算法】差分约束系统

差分约束系统有两种方式可以求解,最短路和最长路。当我们把不等式整理成d[a]+w(a,b) <= d[b]时,我们求最长路。整理成d[a]+w(a,b) >= d[b]时,我们求最短路。

 最短路求得是最大值,最长路求得是最小值。(w(a,b) 表示任意一条a到达b的路径 )

想象一下我们求最短路径的时候是不是有 d[a] + w(a,b) >= d[b]  。意义是任意一条a到b的路径都大于等于a到b的最短路径。 

所以最短路要求的是,所有满足要求的式子中的最大值。(满足这个最大值的w(a,b)是最小的)

最长路径同理。

所以以后碰到全是这类式子的题,就可以转化成最短路或者最长路的问题来求解。

最短路:Bellman-Ford算法、Dijkstra算法。

最长路:把图中边的权值变成负数,再求最短路径,取反就是最长路,

原文地址:https://www.cnblogs.com/zhangjiuding/p/7807503.html