[學習筆記]邊分治


基於邊的一種分治。統計過中心邊的所有路徑

可以類比點分治學習

 

構造:

每次找中心邊(使得兩側的sz的最大值最小),然后遞歸下去

菊花圖會卡成鏈,構造變成O(n^2)。

 

其實復雜度和度數相關

考慮轉化成二叉樹

三度化

法一:把所有兒子依次加一個點串起來

 

法二:

 如果兒子多於2個,建立兩個兒子虛點,把真正兒子奇偶分類給兩個虛點

虛點放在n后面,最后會再處理到

 所以其實邊分治的分治樹上的點有4*n

本來n個點,rebuild變成2*n

而分治樹除了葉子別的點都是邊(類似於kruskal重構樹),所以總共4*n個節點

性質:

二叉樹

 

優劣:

優:1.二叉樹兒子少,討論減少了很多。復雜度基本嚴格logn

邊分樹兒子常數個(為2),每個點在這一層只有兩種所屬

邊分樹也是二叉樹,為邊分樹合並提供條件

 

劣:2.虛點必須不影響答案

 

例題:

bzoj2870最長道路tree——邊分治

邊分樹使得每個點兩個屬性:[WC2018]通道

邊分樹是二叉樹支持合並: [CTSC2018]暴力寫掛——邊分樹合並

 

動態邊分治

和點分治一樣

分治樹上只有了2個兒子,處理兒子的貢獻就很好辦了

關鍵還是避免虛點虛邊的影響了

 

Qtree4——動態點分治

把虛點設置為黑點。也就可以邊分治做了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM