差分約束系統小結

2021-09-24 11:26:00 字數 691 閱讀 3972

一、內容:

有n個變數,m個約束條件組成的不等式組成的系統,稱為差分約束系統。

差分約束系統就是將這些不等式的關係轉換為圖,用最短路的方法求解。

二、常見問題即求解方法

1、求出這些不等式中的最小值:

解法:將不等式轉化為a-b>=c的形式,建立b->a的邊,長度為c,然後求出最長路徑,最長路徑的解就是結果。

2、求出不等式中的最大值

解法:將不等式裝化為a-b<=c的形式,建立b->a長度為c的邊,然後求出最短路,最短路徑的解就是結果。

3、求出不等式是否存在解

解法:找乙個源點,然後根據題中已有關係建立源點到所有點的距離,然後求解這個源點到所有點

的距離求出最大解或最小解,如果圖中存在環則說明好、這些不等式不存在解。

三、常見問題:

1、注意重邊

2、題中的隱含條件建立邊

3、注意不等式的區間,是否可能存在-1的情況

4、建立源點可以避免出現距離為-inf後inf的情況。

5、用spfa時,有時用堆疊代替佇列會更快。

四、練習

1、poj 1716

2、洛谷 p3275

3、poj 2983

4、poj 1364

5、poj 3169

6、poj 3460

7、poj 1201

8、poj 1275

差分約束小結

感覺這玩意挺簡單的。出不了太難的題啊。這種奇怪的圖是可以跑最長路的,因為負環遲早要退出。一般來說要先判圖中是否存在正 負環,可以用spfa記錄每個點鬆弛次數判斷。每個點在一開始都扔進佇列,或者新建超源與點連邊均可。第二種更加有邏輯,且能處理點有初始值的情況,方式為將超源到點的邊權賦為點權,點到超源的...

差分約束小結0 0

在做poi的時候看到一題要用到差分約束的.然後就興致勃勃的去學習了差分約束.結果發現那一題只是運用到了差分約束系統的性質而已.然後套個tarjan floyd 所以並沒有什麼卵用.舉個比較簡單的例子吧.n 個數,m條限制,每條限制dj di a 然後求是否存在這麼個序列.那麼就把式子化一下dj di...

差分約束系統

差分約束 若 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 ...