Observations
①
從 $1$ 到 $N$ 的最短路一定是不走回頭路的。所謂走回頭路是指從序號大的點走到序號小的點。
證明:首先,任意從 $1$ 到 $N$ 的路徑的最后一步一定不是回頭路。假設存在一條從 $1$ 到 $N$ 的最短路走了回頭路,並設這條路最后一次回頭是從 $u$ 到 $v$ 且從 $v$ 開始直到終點經過的點依次是 $v = v_0, v_1, \dots v_k = N$。我們有 $v < u < N$,$v = v_0 < v_1 < v_2 <\dots < v_k = N$ 且 $v_i \ne u$。設 $v_i < u$ 而 $v_{i+1} > u$ 則必然存在邊 $(u, v_{i+1})$ 和邊 $(v_i, v_{i+1})$ 長度相等,因此走 $u, v_{i+1}, \dots, v_{k}$ 更優。矛盾!
為了便於描述,以下用 $(u, v, C)$ 表示連接 $u, v$,長為 $C$ 的無向邊,用 $(u \to v, C)$ 表示從 $u$ 到 $v$ 長為 $c$ 的有向邊。
從上述證明可以得出推論:將原無向圖按下述方式改造成有向圖,從 $1$ 到 $N$ 的最短路長度不變:
以下設 $1 \le u < v \le N$。將原圖中的無向邊 $(u, v, C)$ 刪除,加入有向邊 $(u \to v, C)$。
再任意加入長度非負的回頭邊。
考慮上述有向圖的一種特殊情形:對於 $i = i, 2, \dots, N$,加上長度為 $0$ 的回頭邊 $(i \to i - 1, 0)$。
注意到此時對於一組有向邊 $(s \to t, C_i)$,$L_i \le s < t \le R_i$,只保留 $(L_i \to R_i, C_i)$ 仍能保持從 $1$ 到 $N$ 的最短路長度不變。