差分約束建圖方法
①:對於差分不等式,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,差分約束的題目記住找隱含條件很重要,這樣也就是一共三個條件,建邊...