← 返回首頁
Heavy-Light Decomposition 樹鏈剖分
樹結構:
經典範例 (11 節點)
鏈狀 (8 節點)
完全二元樹 (7 節點)
寬樹 (10 節點)
載入 & 預處理
路徑查詢 (節點編號 0-based):
u:
v:
查詢路徑
清除查詢
重邊(Heavy Edge)
輕邊(Light Edge)
查詢路徑
請載入樹後查詢路徑
樹(重邊高亮)
重鏈(不同顏色)
線段樹位置(DFS 序)
節點資訊表
演算法說明
重兒子
:子樹最大的那個孩子 → 連向它的邊是
重邊
重鏈
:重邊串起來的鏈,同鏈節點的
pos
在陣列中連續
路徑查詢
:兩端點各自沿輕邊往上跳(換鏈),每次跳之前先查詢整條鏈;到達同一條鏈後查最後一段
複雜度
:每次路徑查詢跨 O(log n) 條鏈,每條鏈做一次線段樹查詢 O(log n) → 共 O(log² n)
子樹查詢
:子樹對應連續的 pos 區間 → 直接線段樹 O(log n)