以 luogu p5960 為例。
\(n\) 個未知數,\(m\) 組形如 \(x_i-x_j \le y_k\) 的不等式,求可行解。
對於每乙個 \(x_i\),我們都能找到 \(a\) 組關於它的不等式,第 \(j\) 形如為 \(x_i-x_ \le y_\)。
\(\therefore x_i \le \min(x_+y_,x_+y_,......,x_+y_)\)
該不等式取等時 \(x_i= \min(x_+y_,x_+y_,......,x_+y_)\)
我們發現最短路求 \(dis_u\) 的式子與上面的式子非常相似:在一張有向圖中,若有 \(a\) 個點可以直接到達點 \(u\),第 \(i\) 個點為 \(v_i\) 則 \(dis_u= \min(dis_+w(u,v_1),dis_+w(u,v_2),......dis_+w(u,v_a))\)
所以考慮通過最短路求可行解。
不難想到先對於每乙個不等式 \(x_i-x_j \le y_k\),從 \(j\) 向 \(i\) 連一條權值為 \(y_k\) 的邊;再建乙個 \(0\) 號點向 \(n\) 個點連 \(1\) 條權值為 \(0\) 的邊,這相當於新增了 \(n\) 個條件:對於任意乙個 \(i \in [1,n]\),\(x_i \le x_0\)。
那麼經過上面的操作後,我們就可以從 \(0\) 號點為起點跑一遍單源最短路,\(dis_i\) 即為 \(x_i\) 的乙個可行解。
我們注意到 \(x_i\) 並不一定存在可行解,思考一下 \(x_i\) 沒有解當且僅當存在若干個 \(x_j(j \ne i)\) 的解和 \(x_i\) 的解相互矛盾,即圖**現了負環,判一下就好了。
12 20 差分約束學習筆記
先來看一組不等式 x1 x2 0 x1 x5 1 x2 x5 1 x3 x1 5 x4 x1 4 x4 x3 1 x5 x3 3 x5 x4 3 在不等式組 1 中,每個不等式都是兩個未知數的差小於等於某個常數 大於等於也可以,因 為左右乘以 1 就可以化成小於等於 這樣的不等式組就稱作 差分約束系...
學習筆記 差分約束系統
目錄將邊權取相反數,設此時圖為 g 若 g 無負權環 即 g 無正權環 則有 d v le len v 其中 d v 為在圖 g 上求得的最短路,len v 為源點到 v 的任意路徑權值和。同時可得 d v ge len v 所以可以得到 d v d v 其中 d v 為原圖源點到 v 的最長路。實...
差分約束系統學習筆記
差分約束系統中的每個約束條件是形如如下所示的簡單不等式 xj xi bk。例如,求解不等式組 x1 x5 1 x2 x5 1 x3 x1 5 x4 x1 4 x4 x3 1 x5 x3 3 x5 x4 3 該問題的乙個解為x 5,3,0,1,4 另乙個解y 0,2,5,4,1 這2個解是有聯絡的 y...