[學習筆記]圓方樹
阿新 • • 發佈:2018-11-30
由於 圓點 大堆 分類討論 ace 可能 detail 成了 基本
圓方樹:元芳你怎麽看
圓方樹推薦
圓方樹是什麽?
Tarjan家族中,最不好處理的是點雙
因為一個割點可能屬於很多的DCC。
為了把圖縮成一棵樹,我們不得不做出這樣的處理:
摘自:https://blog.csdn.net/qq_39670434/article/details/81973923
這個樹不但醜。而且,對於一個點雙內部的信息,我們把它縮成了一個點,內部的與非割點有關的路徑我們一無所知。
所以這個玩意只能用來維護連通性。。。。以及簡單的問題。
而且要分類討論一大堆。,。。。
然後,圓方樹橫空出世。
摘自yyb博客
這樣,我們
既保留了整體上樹的優美結構,又可以保留所有的原始節點。
利用圓點和方點之間的邊來存儲信息,就可以比較輕松處理具體點雙內部的路徑了。
圓方樹是處理仙人掌問題的。
處理仙人掌問題還有一個方法:dfs樹。
我們發現一個仙人掌無非就是多了幾個環。
那麽找一個dfs樹出來,就是多了幾個返祖邊。
dp的時候照顧一下就好了。
例如把環直接拉出來,或者多加一維記錄環頂的信息 。
[SHOI2008]仙人掌圖 II——樹形dp與環形處理
但是這個東西的低級之處在於,
基本上我們只能搜索一次,對於重復靈活查詢,例如最短路徑的問題,就無能為力了。惡心之處就是環的問題。
(可能用什麽暴力高級數據結構維護也許可以)
圓方樹就簡單很多了。
一般就分方點原點討論一下。
關鍵在於怎麽處理圓——方邊,以及方點維護哪些信息。
由於圓方樹比較優秀,
它還可以用於一般的圖。
總之:
既保留了整體上樹的優美結構,又可以保留所有的原始節點。
利用圓點和方點之間的邊來存儲信息,就可以比較輕松處理具體點雙內部的路徑了。
[學習筆記]圓方樹