據說寫這個會被噴菜但我就是想寫我樂意你管我你咬我啊菜還用你說我本身內心早就很清楚了spa
就是把原圖複製下來,每一個原圖就是一層,在原圖的鏈接基礎上再在相鄰的層上加一些要求的邊(通常是題目要求的怎麼變化),通常是單向邊,這樣能夠保證他不會再回來。.net
當最短路出現變化的時候也就是變化的最短路,例如咱們可使\(k\)條邊的邊權爲零,改變\(k\)條邊的鏈接方式,而咱們又是事先並不知道要改哪些或者刪除哪些邊的,這個時候就要用到分層圖。blog
爲何呢?你爲何不問問神奇海螺吶?放心好啦,我已經替你問過神奇海螺了,她讓我來轉告你。get
首先假設咱們有一個圖,咱們能夠刪去其中的\(k\)條邊,咱們還知道這個圖的鏈接狀況, 要求求出某點到某點的最短路徑博客
假設圖是這樣的:
(每次請靈魂畫師入場都很貴的!)
io
由於咱們要刪去\(k\)條邊,咱們又不知道要刪哪\(k\)條邊。那就只能枚舉。class
咱們假設咱們複製了\(k\)層,看第一個圖能夠知道從\(u\)到\(v\)有一條長度爲\(3\)的邊,咱們如今枚舉到了\(u\)到\(v\)這條邊咱們能夠這樣處理基礎
在\(u\)和\(v{’}\)之間連一條長度爲0的邊跑到下一層裏,而後再繼續找這一層裏的答案,不斷更新便可學習筆記
就是這樣,沒了
謝謝收看,祝身體健康!