求樹的直徑

2022-05-05 14:39:08 字數 532 閱讀 6873

歡迎來踩本人部落格

樹的直徑:

就是樹上最長路

方法 :

求兩邊dfs即可

步驟:1.從任意一點進行dfs,然後找到乙個最長路徑,記錄最遠點u

2.然後從u再進行dfs,找最長路徑,記錄一點v。

(u,v)就是樹的直徑

第四屆藍橋杯a組

證明:

我們可以看出圖中,樹的直徑是(4->2->5),長度為9.

我們一開始選定乙個點dfs

如果是直徑外一點,比如w1,從w1進行dfs找到的就是點4,路徑就1->2->4,這個路徑一定會與樹的直徑相交,而找到的4是直徑的一端,那從4再進行dfs就是樹的直徑的另一端5,這樣兩遍dfs你就找到了樹的直徑

如果是直徑內一點,比如w2,從w2開始dfs找到的最遠點4,這個路徑會被包含在樹的直徑裡,那找到的點也就是樹直徑的一端,再dfs就可以找到另一端。

綜上用兩遍dfs就可以找到樹的直徑

求樹的直徑

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

求樹的直徑

由於之前寫了一篇部落格,用到了樹的直徑卻沒有求。在咕咕咕了n多天之後決定寫這篇部落格。樹的直徑就是樹中最長的一條路。求樹的直徑我只會一種方法 據說dalao都會2種 隨便找乙個點跑一遍最短路,找到離他最遠的節點a,然後從a節點繼續跑最短路,再次找到乙個離a最遠的節點b,a和b分別是直徑的兩個端點,他...

線段樹求樹的直徑

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