标签:weight 系统 str 顶点 一个 差分 就是 利用 lin
差分约束系统<\(V, C\)>:
求解差分约束系统<\(V, C\)>的解就是求满足所有不等式\(C\)的一个关于\(V\)集合的解,由于不等式往往存在多解。
通常利用有向图的最短路径、最长路径算法来求解差分约束的解。为何可以这样呢?以图论的最短路径算法为例,在求解最短路径的时候往往会有松弛操作:
\[ Dis[v] > Dis[u] + weight(u, v)
\quad then \quad
Dis[v] = Dis[u] + weight(u, v) \]
那么松弛完后\(Dis[v] \leq Dis[u] + weight(u, v)\) (这也是最短路的一个结论),移一下项变成\(Dis[u]-Dis[v] \leq weight(u,v)\) 满足约束的形式\(x_i-x_j \leq b_{i,j}\)。所以可以通过最短路径算法求解\(\leq\)类型的差分约束系统,图的顶点集\(V^{'} \Rightarrow V\),图的边集\(E^{'} \Rightarrow C\),最终求解出的\(Dis[i] \Rightarrow x_i\)。同理,最长路径算法则可以解决\(\geq\)类型的差分约束系统。
标签:weight 系统 str 顶点 一个 差分 就是 利用 lin
原文地址:https://www.cnblogs.com/GorgeousBankarian/p/12217377.html