Disjoint Sparse Table

Disjoint Sparse Table

1. 概要 本記事では,静的な列に対する区間クエリを高速に処理するデータ構造である Disjoint Sparse Table (DST と略記することもあります)を解説します. Disjoint Sparse Table は,長さ $N$ の列に対して事前計算 $\mathrm{O}(N\log N)$ 時間を行うこ…

Sqrt Tree

1. 概要 本記事では,Sqrt Tree について解説します. Sqrt Tree は列の平方分割を再帰的に行うことでできる木構造です.特に静的なモノイド列に対する区間積クエリを高速に処理できます.具体的には,列の長さを $N$ とするとき,事前計算 $\mathrm{O}(N\lo…

静的な列の区間積クエリ

1. 概要 本記事では Sqrt Tree などに続き,再び静的なモノイド列に対する区間積クエリの問題を扱います. 特に,長さ $N$ の列について $\mathrm{O}(N)$ 時間の事前計算を前提とした場合,クエリあたり $\mathrm{O}(\alpha(N))$ 時間($\alpha(N)$ は逆アッ…