求樹的直徑

2022-06-15 11:54:09 字數 516 閱讀 8290

由於之前寫了一篇部落格,用到了樹的直徑卻沒有求。在咕咕咕了n多天之後決定寫這篇部落格。

樹的直徑就是樹中最長的一條路。

求樹的直徑我只會一種方法……(據說dalao都會2種

隨便找乙個點跑一遍最短路,找到離他最遠的節點a,然後從a節點繼續跑最短路,再次找到乙個離a最遠的節點b,a和b分別是直徑的兩個端點,他們之間的距離就是樹的直徑。

接下來是喜(瘋)聞(狂)樂(勸)見(退)的證明環節:

還是之前那個道理,只要我證明不了他是假的,那他就是真的。

假設圖長成這個樣子……

我們固定ab為直徑。

如果我們選了兩個端點的其中乙個,那最長的乙個一定是另乙個。如果最長的不是另乙個那這條路徑就不是直徑了。

如果我們選了c,那也一定會選到直徑的端點,因為d一定是最短的,不然他就會是樹的直徑的一部分了。

選d同理。

求樹的直徑

歡迎來踩本人部落格 樹的直徑 就是樹上最長路 方法 求兩邊dfs即可 步驟 1.從任意一點進行dfs,然後找到乙個最長路徑,記錄最遠點u 2.然後從u再進行dfs,找最長路徑,記錄一點v。u,v 就是樹的直徑 第四屆藍橋杯a組 證明 我們可以看出圖中,樹的直徑是 4 2 5 長度為9.我們一開始選定...

求樹的直徑

歡迎來踩本人部落格 樹的直徑 就是樹上最長路 方法 求兩邊dfs即可 步驟 1.從任意一點進行dfs,然後找到乙個最長路徑,記錄最遠點u 2.然後從u再進行dfs,找最長路徑,記錄一點v。u,v 就是樹的直徑 第四屆藍橋杯a組 證明 我們可以看出圖中,樹的直徑是 4 2 5 長度為9.我們一開始選定...

線段樹求樹的直徑

線段樹求直徑可以求任意子樹 包括連子樹都不算的分散節點集合 的直徑,適用範圍廣。線段樹的每個節點所對應的區間 l,r 指代了 dfn 在 l,r 內節點,其中線段樹上每個節點儲存了 diam 當前區間直徑 及 lp,rp 當前直徑對應的左右端點 每次 merge 操作分為全左區間 全右區間和橫跨兩個...