1. 程式人生 > 資訊 >訊息稱特斯拉 2021 款 Model Y 標續後驅版已停產:未提車使用者升級 22 款,加速縮水、晶片升級

訊息稱特斯拉 2021 款 Model Y 標續後驅版已停產:未提車使用者升級 22 款,加速縮水、晶片升級

(幾萬年前的部落格了,剛從洛谷搬過來)

主要內容

差分約束系統 是一種特殊的 \(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\)

    的邊,表示第 \(i\) 號元素的 下界\(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)\)

注意:整個圖不一定是聯通的!


例題