본문 바로가기 메뉴 바로가기

알고리즘 공부방

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

알고리즘 공부방

검색하기 폼
  • 분류 전체보기 (107)
    • PS(공부) 일지 (7)
    • Study (2)
    • Codeforces (2)
    • BOJ (25)
      • Easy (13)
      • Hard (3)
    • IOI (5)
      • 2020 (1)
      • 2019 (3)
    • JOI (6)
      • 2020 (3)
      • 2019 (1)
      • 2017 (1)
      • 2016 (0)
    • JOISC (13)
      • 2020 (1)
      • 2019 (7)
      • 2018 (3)
      • 2017 (1)
    • JOIOC (2)
    • APIO (5)
      • 2020 (3)
    • POI (1)
      • 2014 (1)
    • KOI (0)
    • 알고리즘 & 자료구조 정리 (28)
    • 그래프 이론 정리 (2)
    • 아이디어 & 테크닉 모음 (7)
    • 휴지통 (0)
  • 방명록

lca (1)
LCA (Lowest Common Ancestor)

LCA란, Lowest Common Ancestor 로, 트리에서의 최소 공통 조상이다. 공통 조상은 두 노드에 대해, 두 노드 모두의 자손인 조상 노드들을 의미하며, 그중 깊이가 최대인 것, 즉 가장 아래쪽에 위치한 노드를 두 노드에 대한 최소 공통 조상 이라 한다. 기본적인 아이디어는 두 노드에 대해서 1. 두 노드의 깊이가 같도록 하나의 노드를 올려준 후, 2. 두 노드가 같아질 때까지 올려준다. 이 연산을 그냥 실행하면, 최악의 경우에 $O(N)$의 시간이 걸릴 수 있다. 이는 Sparse Table 을 사용하여 LCA 연산을 $O(logN)$에 처리할 수 있다. 가장 먼저 dfs 한번을 돌면서 각 노드들의 깊이와, 노드들의 부모를 sparse table 안에 저장한다. 다음, $par[i][j]..

알고리즘 & 자료구조 정리 2019. 7. 3. 20:06
이전 1 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • Merge Sort
  • Fenwick Tree
  • Floyd-Warshall
  • DFS
  • BOJ
  • Divide & Conquer
  • ⭐
  • Shortest path
  • Sparse Table
  • Line sweeping
  • Union Find
  • Segment Tree
  • Persistent Segment Tree
  • Lazy Propagation
  • Codeforces
  • convex hull
  • APIO
  • tree
  • offline
  • stack
  • Greedy
  • ioi
  • Parametric Search
  • Centroid Decomposition
  • graph
  • Sqrt Decomposition
  • HLD
  • Interactive
  • CHT
  • DP
more
«   2025/07   »
일 월 화 수 목 금 토
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바