樹的直徑(最長的簡單路徑)

題解:分析一下,因爲是樹,因此兩點之間的路徑有且只有一條,爲了求出歐拉路,因此必然會向回走,從遞歸的角度來看,假設x看做一個樹根,有t個孩子y1…yt。其中每一個孩子爲根的子樹歐拉路都加起來,而後去掉最長的兩條歐拉路做爲起點和終點。因此其實就是全部邊權重之和的二倍減去樹的直徑(即樹中最長的簡單路)。 因此此題的關鍵是求出樹的直徑,算是經典問題之一,有兩種方法。java 樹形dp:dp[x]表示通過
相關文章
相關標籤/搜索