Loading [MathJax]/jax/output/CommonHTML/jax.js

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン両方とも次のリビジョン
programming_algorithm:data_structure:sparse_table [2019/12/04] ikatakosprogramming_algorithm:data_structure:sparse_table [2019/12/04] ikatakos
行 5: 行 5:
 ===== 概要 ===== ===== 概要 =====
  
-  * 区間最小値/最大値など、区間に対するクエリに答えられる +  * 区間最小値/最大値など、**区間に対するクエリ**に答えられる 
-  * 演算 は、以下の条件を満たす必要がある(min, maxなどに相当する部分+  * 演算 は、以下の条件を満たす必要がある(min, maxに相当するもの
     * 結合則: (AB)C=A(BC)     * 結合則: (AB)C=A(BC)
-    * 冪等性: $A \oplus = A \oplus B \oplus B \oplus ... \oplus B$+    * 冪等性: $A \oplus = A$
   * クエリ処理はとても速い O(1)   * クエリ処理はとても速い O(1)
   * 事前計算の計算量・メモリは少し多めに必要になる O(NlogN)   * 事前計算の計算量・メモリは少し多めに必要になる O(NlogN)
行 14: 行 14:
  
 足し算は冪等性を満たさないため、使えない。 足し算は冪等性を満たさないため、使えない。
-(別に使ってもいいのだが、区間を被らせずにクエリ処理するのは計算量 O(logN) かかるし、+(別に使ってもいいのだが、クエリ処理計算量 O(logN) かかるようになるし、
 それならセグメント木と同じ上にこちらは更新も出来るので、あまり優位性がない) それならセグメント木と同じ上にこちらは更新も出来るので、あまり優位性がない)
 +
 +min, maxの他には、最小公倍数/最大公約数なども冪等性を満たす。
  
 ===== データ構造 ===== ===== データ構造 =====
programming_algorithm/data_structure/sparse_table.txt · 最終更新: by ikatakos
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0