差分約束系統

2021-09-28 17:31:06 字數 1596 閱讀 9932

求最大值:跑最短路,約束條件寫作 dv−

du

<=w

d_v-d_u<=w

dv​−du

​<=w

,連邊u

−>v邊

權w

u->v邊權w

u−>v邊

權w,鬆弛條件為一般最短路條件,若圖中存在負環則無解。

求最小值,約束條件一般為dv−

du

>=w

d_v-d_u>=w

dv​−du

​>=w

,將不等式連邊同乘-1,寫作小於等於形式,跑最短路,最後結果為答案取相反數。

建圖技巧:

如果是一組解,那麼對於任意的常數b

bb,顯然也是一組解,故可以先求一組負數解,即假設∀i,

xi

<=0

\forall i,x_i<=0

∀i,xi​

<=0

,然後增加乙個0節點,令x0=

0x_0=0

x0​=

0。這樣以來就多了n個形如xi−

x0

<=0

x_i-x_0<=0

xi​−x0

​<=0

的條件,應從0向每個節點連一條邊權為0的邊,從0開始跑最短路,即能跑出一組解。

字首和思想建圖,這種型別題目中往往會指出所有的位置或物品平鋪在一條數軸上,然後給出若干個區間內限制資訊,例如∀i,

[li,

ri]內

物品數量

<=w

i\forall i,[l_i,r_i]內物品數量<=w_i

∀i,[li

​,ri

​]內物

品數量<=w

i​,如果用sum來表示字首和,也即:sum

[r]−

sum[

l−1]

<=w

sum[r]-sum[l-1]<=w

sum[r]

−sum

[l−1

]<=w

,故只需在l−1

與r之間

連邊即可

l-1與r之間連邊即可

l−1與r之

間連邊即

可,當然題目中有時還會有一些特殊限制條件,比如每個位置上只能放乙個物品,那麼:∀i,

sum[

i]−s

um[i

−1

]<=1

,sum

[i−1

]−su

m[i]

<=0

\forall i,sum[i]-sum[i-1]<=1,sum[i-1]-sum[i]<=0

∀i,sum

[i]−

sum[

i−1]

<=1

,sum

[i−1

]−su

m[i]

<=0

,當然還可能限制總物品數量,那麼:sum

[n]−

sum[

0]

<=a

ll

sum[n]-sum[0]<=all

sum[n]

−sum

[0]<=a

ll。待更

差分約束系統

差分約束 若 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就可以化成小於等於 這樣的不等式組就稱作差分約束系統。這個不等式組要麼無解...