728x90
반응형

Competitive Programming 2

Mo’s Algorithm

개요Mo’s Algorithm은 범위 쿼리(range query)를 다수 처리해야 하는 상황에서 전체 쿼리를 오프라인으로 정렬한 후 슬라이딩 윈도우 기법을 이용해 효율적으로 처리하는 알고리즘입니다. 주로 수열에서의 구간 합, distinct 수, 빈도 등 다양한 누적 정보 질의 문제에 사용되며, 쿼리 수가 많고 온라인 처리가 불가능할 때 유용합니다. 쿼리 순서를 정렬하여 윈도우 이동량을 줄이는 것이 핵심 전략입니다.1. 개념 및 정의 항목 설명 정의Mo’s Algorithm은 쿼리들을 sqrt(n) 블록 단위로 정렬한 후, 슬라이딩 윈도우로 범위 연산을 최적화하는 오프라인 쿼리 처리 알고리즘입니다.목적범위 쿼리 문제에서 쿼리 이동량을 줄여 성능 향상필요성쿼리 수(Q)가 많고, 데이터 크기(N)에 따라 ..

Topic 2025.05.16

Link-Cut Tree

개요Link-Cut Tree는 동적으로 연결되거나 분리되는 트리 구조에서 효율적으로 경로 질의 및 갱신 연산을 수행할 수 있도록 설계된 고급 트리 기반 자료구조입니다. Sleator와 Tarjan에 의해 1983년 제안된 이 자료구조는 splay tree를 기반으로 하며, 각 노드의 서브트리나 루트까지의 경로에 대해 로그 시간 내 연산을 지원합니다. Union-Find, Euler Tour Tree보다 더 복잡한 트리 동작이 필요한 알고리즘에 적합합니다.1. 개념 및 정의 항목 설명 정의Link-Cut Tree는 포레스트(트리들의 집합) 구조에 대해 노드 간 연결(Link), 분리(Cut), 경로 질의(Query), 경로 갱신(Update)을 동적으로 처리하는 트리 자료구조입니다.목적트리 구조가 변동하..

Topic 2025.05.15
728x90
반응형