ABC359 G - Sum of Tree Distance

swm_sxt發表於2024-06-23

題目連結

題目大意

給出一棵樹,樹上每個節點都有一種顏色,求所有顏色相同的節點兩兩之間距離的總和。

題解

想來寫題解主要是看了一下官方解法都寫的需要“重心分解”,應該是對應中文語境下的樹的點分治。實際上點分治寫起來很費事,可以用啟發式合併替代。

具體來說,dfs時每個節點都維護一個資料結構(平衡樹線段樹都可以)用來統計子樹下各個顏色節點的數量,維護時啟發式合併即可,缺點是複雜度應該是兩個logn的。

為了統計答案,除了維護節點數量還需要一邊統計他們的深度之和。

程式碼連結(用小號打的hhh)

相關文章