Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

LCA (Lowest Common Ancestor)

image

<정의>

  • 정점이 자신을 포함하여 조상을 따라 거슬러 올라 갈 때 처음 만나는 정점
  • 하나의 트리에선 반드시 최소 하나의 공통 조상 존재 (root node)
  • 2^i 만큼 탐색시 O(lgn) ex) 7 = 1+2+4 -> 3번

<원리>

  1. dfs를 이용해 depth 값을 갱신시킨다
  2. dp에 자신의 부모 노드 정보를 기록한다
  3. 하나의 노드가 다른 노드와 깊이가 같아질 때까지 점프한다 (2^i)
  4. 두개의 노드가 같은 노드를 가르킬때까지 점프
  5. 두 부모가 같다면 LCA가 아니라 공통조상으로 판단하고 바로 밑 자식으로 간다

<활용>

  • 두 정점간의 최단 거리 (LCA를 교차로로 간주)