判斷樹上路徑是否相交

2022-09-18 08:09:27 字數 774 閱讀 4896

判斷方法:在一棵樹上,對於路徑 (x,y) 和路徑 (u,v),判斷它們相交,等價於判斷是否滿足: lca(u,v) 在路徑 (x,y) 上,or, lca(x,y) 在路徑 (u,v) 上。

引理1:對於樹上路徑 (a,b) 的任意乙個點 x,路徑的深度最小的點,即 lca(a,b),必然在 x 到這棵樹的根的路徑上。

引理2:對於乙個點 x 的子樹中的任意乙個點 y,x 在 y 到樹根的路徑上。

若路徑相交:

設路徑 (x,y) 與路徑 (u,v) 的乙個交點為 k(注意,k 同時在兩條路徑上,而且在 lca(x,y) 的子樹裡),如果 k 就是路徑 (u,v) 的深度最小的點,那麼這就說明 lca(u,v) 在路徑 (x,y) 上;

如果 k 不是路徑 (u,v) 的深度最小的點,那麼路徑 (u,v) 的深度最小的點,即 lca(u,v),一定在 k 到樹根的路徑上(引理 1),k 到樹根的路徑上一定有 lca(x,y)(引理2),這就分兩種情況:

a. lca(u,v) 深度大於 lca(x,y),這就滿足 lca(u,v) 在路徑 (x,y) 上。

b. lca(u,v) 深度小於 lca(x,y),這就滿足 lca(x,y) 在路徑 (u,v) 上。

若路徑不相交:

則顯然其中乙個路徑的 lca 不可能在另乙個路徑上。

qed

成功證明命題等價。

5055 樹上路徑

給定一顆 n 個結點的無根樹,每個點有乙個點權,定義一條路徑的價值為路徑上的點權和 路徑的點權最大值。給定引數 p,求有多少不同的樹上簡單路徑,滿足它的價值恰好是 p 的倍數。data constraint n 105,p 107 考慮點分治。對於當前的分治重心,把所有以它為起點的路徑取出來,按照路...

題解 樹上路徑

一棵樹的構造過程為 首先以1號點為根,然後依次加入2 n號點。加入i號點時,在1 i 1點中選擇乙個點為f i 將i號點與其相連線。yuri想要求出,每次加點之後路上的最長路徑長度。第一行乙個整數n,表示樹的節點個數。第二行n 1個整數,第i個整數表示f i 1 一行n 1個整數,分別表示加完2 n...

樹上路徑(path)

在 berland,有n 個城堡。每個城堡恰好屬於乙個領主。不同的城堡屬於不同的領主。在所有領主中有乙個是國王,其他的每個領主都直接隸屬於另一位領主,並且間接隸屬於國王。一位領主可以擁有任意數量的下屬。這些城堡被一些雙向的道路連線。兩個城堡是連線的當且僅當他們的主人中一位直接隸屬於另一位。每一年,在...