zky學長不止一次說分層圖非常簡單隨便看看就會了
然后今天就拿出時間來學了學分層圖(寫這篇文章是不是會被罵傻叉算了反正我就是傻叉)
首先@出一篇論文
2004國家集訓隊《分層圖思想及其在信息學競賽中的應用》肖天
正文時間
————————————我是切割線>w<——————————————
裸的最短路和網絡流題目大家都會,就算是須要把模型抽象分析一下才干得出也已經不算什么了
可是假設在最短路和網絡流的基礎上增加一些干擾操作呢?
比方我們能夠進行一些操作讓圖中某些邊的邊權或者容量減半(beijingwc2012 凍結)而這些操作不是預先給出的是須要我們自己選擇一些邊進行減半的呢?
非常顯然對於這種情況普通最短路和網絡流是沒有辦法處理的。
所以須要用到分層圖的思想。
所謂分層圖,就是狀態是多維的一個巨大的圖,正常的最短路我們是在一個二維的圖中進行的,而用到分層圖的時候就須要在多維空間內進行。
通常情況下須要用到分層圖思想的題目都有一些干擾操作(常見的就是能夠將邊權降低什么的)(P.S.前提是這些操作的數目不太大)。我們對這些干擾操作的解決方法就是把原圖“復制”,並且一般來說干擾操作有多少次就要復制多少。
你沒看錯就是復制。
這時候有的人就會開始吐槽了:你要復制一個圖,無論時間還是空間都存在巨大的花費,說不定光復制就炸了(╯‵□′)╯︵┻━┻並且假設再對每一個圖做一遍最短路(網絡流),早就炸掉了好嗎(╯‵□′)╯︵┻━┻
圖樣圖森破啊少年>_<
肖天在原文中的觀點(我給提煉了一下)是:
每一層圖都是由唯一的原圖復制來的。因此這些不同層次的圖就具有一些同樣的性質。因此非常多時候所謂的復制事實上僅僅須要我們在邏輯上把圖當成非常多層圖來處理,分析出層的概念。根本不須要在程序里進行新圖的存儲。
並且這些不同層次的圖有類似的性質。大部分時候我們的計算結果是類似或者同樣的,因此僅僅要計算一次。存儲結果,而不須要重復計算。因此不會導致問題的規模變大。
層之間是拓撲有序的。
這也就意味着在層之間能夠非常easy實現遞推等處理,為發現有效算法打下了良好的基礎。
只是在實際中我發現。我們還是須要建新的圖的(也許我沒有理解肖天在原文中說不用對新層進行存儲的意思?)
然而計算大概是(所以不要噴我僅僅是我認為是這種)確實應當僅僅有一遍,由於我們會在不同層次圖的點之間連起新的邊。
假設你不信的話,我能夠給幾個關於某道裸題的題解鏈接。
反正我是看過之后這么總結出來的。
。。
真的不正確的話請快快QQ喊我
Beijingwc2012 凍結
JLOI2011飛行路線
就是這樣>w<