訊息稱特斯拉 2021 款 Model Y 標續後驅版已停產:未提車使用者升級 22 款,加速縮水、晶片升級
阿新 • • 發佈:2022-01-26
(幾萬年前的部落格了,剛從洛谷搬過來)
主要內容
差分約束系統 是一種特殊的 \(n\) 元一次不等式組 。
差分約束系統中的每個約束條件 \(x_i-x_j\le c_k\) 都可以變形成 \(x_i\le x_j+c_k\) 與 \(x_j\ge x_i-c_k\) ,這與單源最短路中的三角形不等式非常相似。因此,我們可以把每個變數 \(x_i\) 看做圖中的一個結點,對於每個約束條件連邊。
需要注意的是,有些題目看能會對解的上、下界進行約束,因此我們需要對這些條件處理(這裡只考慮對於這 \(n\) 個元素 只約束了上界 或 只約束了下界 ):
-
只約束下界:有 \(0\) 號點向每一個點連一條長為 \(Lim_i\)
題意 轉化 連邊 \(x_a-x_b\ge c\) \(x_a\ge x_b+c\) add(b,a,c)
\(x_a-x_b\le c\) \(x_b\ge x_a-c\) add(a,b,-c)
\(x_a=x_b\) \(x_a\ge x_b\) , \(x_b\le x_a\) add(a,b,0),add(b,a,0)
之後對整張圖跑 最長路 。
-
只約束上界:有 \(0\) 號點向每一個點連一條長為 \(Lim_i\) 的邊,表示第 \(i\) 號元素的 上界 為 \(Lim_i\)
題意 轉化 連邊 \(x_a-x_b\ge c\) \(x_b\le x_a-c\) add(a,b,-c)
\(x_a-x_b\le c\) \(x_a\le x_b+c\) add(b,a,c)
\(x_a=x_b\) \(x_a\le x_b\) , \(x_b\le x_a\) add(a,b,0),add(b,a,0)
之後對整張圖跑 最短路 。
設 \(dist[0]=0\) ,若存在負環 \(/\) 正環,則不等式無解,否則 \(x_i=dist[i]\) 是該差分約束系統的一組解 。
最壞情況下(存在負環 \(/\) 正環)複雜度為 \(O(nm)\)
注意:整個圖不一定是聯通的!