先來看一道例題
現有未知數a1一眼看下去,好像很難入手。,a2,
⋯,an
,有若干個形如ai
−aj≤
k 的不等式構成的不等式組,求解這個不等式組的一組解。
等一下,是不是有點熟悉?
對於乙個圖的最短路,我們設di
si表示源點到
i 的最短路,那麼如果j−
>
i,那麼滿足:di
si≤d
isj+
wi,j
等等,你發現了什麼?
沒錯,對於這個不等式組,我們可以像圖的最短路問題一樣連邊(ai
−aj≤
k 即點j
到 點
i 連一條邊權為k的單向邊),然後設乙個源點s連向
a1,a
2,⋯,
an,做一次最短路得出的即為一組可行解。
像這樣,由
n 個變數,有若干個形如ai
−aj≤
k約束的系統,就叫差分約束系統,像我們這樣把它構成的圖就叫做差分約束圖。
再來看一組例題:
設有n個盒子標號為1…n,每個盒子最多放1個球。其中有若干個[a這就是典型的求解有若干個形如aii,bi
,ci]
表示ai
~bi最多可放ci
個球,求這n個盒子最多可放多少個球。
−aj≤
k 條件約束的差分約束系統。
我們設s
i 表示
1 ~
i放n個球,那麼我們有:0≤
sbi−
sai−
1≤ci
0≤si−si
−1≤1
按照上述方法連邊,做一次最短路,所得的di
sn就是答案(可以證明一下為什麼)。
差分約束系統
差分約束 若 s a s b k 建一條b到a 的長度為k的邊 若s a s b k 建一條b到a 的長度為 k的邊 是求最小值的最長路 是求最大值的最短路 注意到最短路演算法的鬆弛操作 if d j d i w i j d j d i w i j 這其中的三角形不等式 d j d i w i j ...
差分約束系統
差分約束系統 對於差分不等式,a b c 建一條 b 到 a 的權值為 c 的邊,求的是最短路,得到的是最大值 對於不等式 a b c 建一條 b 到 a 的權值為 c 的邊,求的是最長路,得到的是最小值 存在負環的話是無解 求不出最短路 dist 沒有得到更新 的話是任意解 第三 一種建圖方法 設...
差分約束系統
差分約束系統 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就可以化成小於等於 這樣的不等式組就稱作差分約束系統。這個不等式組要麼無解...