差分約束基礎

2021-07-24 13:41:09 字數 578 閱讀 4662

差分約束建圖方法

①:對於差分不等式,a - b <= c ,建一條 b 到 a 的權值為 c 的邊,求的是最短路,得到的是最大值

②:對於不等式 a - b >= c ,建一條 b 到 a 的權值為 c 的邊,求的是最長路,得到的是最小值

①:存在負環的話是無解

②:求不出最短路(dist[ ]沒有得到更新)的話是任意解

(最長路時可以模擬這兩條結論);

或是1.對於乙個全部都是<=號的不等式組,我們可以將每個式子轉化為xi<=xj+w(i,j),那麼就建一條邊,xj->xi=w(i,j),然後利用最短路徑解決問題,在x0定死的情況下,求得最小值

2.對於乙個全部都是》=號的不等式組,我們可以將每個式子轉化為xi>=xj+w(i,j),那麼就建一條邊,xj->xi=w(i,j),然後利用最長路徑解決問題,在x0定死的情況下,求得最大值

如果dis[xi]為inf或-inf,那麼xi為任意解

可以結合例題看一看wikioi 1242 布局(差分約束基礎) codeonce的部落格

參考了許浩澤大神的部落格的內容,感謝

wikioi1242 布局 jackleg的部落格

POJ3169差分約束 SPFA 差分約束

思路 假設i j 兩隻奶牛可以站在同乙個位置,但是必須公升序排列,所以有差分約束方程d i d i 1 0 對於兩隻有好感的奶牛有差分約束方程d j d i k 對於兩隻反感的奶牛有差分約束方程d i d j k 有了約束方程就可以spfa include include include inclu...

分糖果 差分約束

description 幼兒園裡有n 個小朋友,lxhgww 老師現在想要給這些小朋友們分配糖果,要求每個小朋友都要分到糖果。但是小朋友們也有嫉妒心,總是會提出一些要求,比如小明不希望小紅分到的糖果比他的多,於是在分配糖果的時候,lxhgww 需要滿足小朋友們的 k個要求。幼兒園的糖果總是有限的,l...

POJ1201基礎差分約束

題意 有一條直線,直線上做多有50000個點,然後給你組關係 a b c表明a b之間最少有c個點,問直線上最少多少個點。思路 a b最少有c個點可以想象a到b 1的距離是大於等於c的,還有乙個隱含條件就是 0 s i s i 1 1,差分約束的題目記住找隱含條件很重要,這樣也就是一共三個條件,建邊...