差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン両方とも次のリビジョン
programming_algorithm:data_structure:sparse_table [2019/12/04] ikatakosprogramming_algorithm:data_structure:sparse_table [2019/12/05] – [実装] ikatakos
行 16: 行 16:
 (別に使ってもいいのだが、クエリ処理に計算量 $O(\log{N})$ かかるようになるし、 (別に使ってもいいのだが、クエリ処理に計算量 $O(\log{N})$ かかるようになるし、
 それならセグメント木と同じ上にこちらは更新も出来るので、あまり優位性がない) それならセグメント木と同じ上にこちらは更新も出来るので、あまり優位性がない)
 +
 +min, maxの他には、最小公倍数/最大公約数なども冪等性を満たす。
  
 ===== データ構造 ===== ===== データ構造 =====
行 48: 行 50:
  
 PythonならNumPyを使えば、tableの構築において $k-1$ の計算結果を利用して $k$ を求める部分を高速化できる。 PythonならNumPyを使えば、tableの構築において $k-1$ の計算結果を利用して $k$ を求める部分を高速化できる。
 +(ただしminimum, maximum, lcm, gcdなど2つの配列の要素同士の演算を行う関数がNumPyに用意されているものに限る)
  
 <sxh python> <sxh python>
行 69: 行 72:
  
     def query(self, l, r):     def query(self, l, r):
 +        """ min value of [l, r) """
         d = r - l         d = r - l
         if d == 1:         if d == 1:
programming_algorithm/data_structure/sparse_table.txt · 最終更新: 2023/10/13 by ikatakos
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0