差分约束 总结
如果一個系統由n個變量和m個約束條件組成,其中每個約束條件形如xj-xi<=bk(i,j∈[1,n],k∈[1,m]),則其為差分約束系統(system of difference constraints)。亦即,差分約束系統是關于一組變量的特殊不等式組。求解差分約束系統,可以轉化成圖論的單源最短路徑問題。
觀察xj-xi<=bk,會發現它類似最短路中的三角不等式d[v]<=d[u]+w[u,v],即d[v]-d[u]<=w[u,v]。因此,以每個變量xi為結點,對于約束條件xj-xi<=bk,連接一條邊(i,j),邊權為bk。我們再增加一個源點s,s與所有點相連,邊權均為0。對這個圖,以s為源點運行bellman-ford算法,最終{d[i]}即為一組可行解。(差分約束系統的解的一個特點是,當將所有變量同時增加相同的大小,約束條件依然成立)
觀察xj-xi<=bk,會發現它類似最短路中的三角不等式d[v]<=d[u]+w[u,v],即d[v]-d[u]<=w[u,v]。因此,以每個變量xi為結點,對于約束條件xj-xi<=bk,連接一條邊(i,j),邊權為bk。我們再增加一個源點s,s與所有點相連,邊權均為0。對這個圖,以s為源點運行bellman-ford算法,最終{d[i]}即為一組可行解。(差分約束系統的解的一個特點是,當將所有變量同時增加相同的大小,約束條件依然成立)
*** (最短路求的最大 最長路求的最小)
總結
- 上一篇: POJ 3461 KMP
- 下一篇: POJ 3169 差分约束