class
NgLib::
SparseTable(T)
- NgLib::SparseTable(T)
- Reference
- Object
Overview
不変な数列
-
結合則 :
-
冪等性 :
前計算は
Defined in:
nglib/data_structure/sparse_table.crConstructors
-
.new
(elems : Enumerable(T), op : T, T -> T)
としてデータ構造を構築します。
Class Method Summary
-
.bitwise_and
(elems : Enumerable(T))
としてデータ構造を構築します。 -
.bitwise_or
(elems : Enumerable(T))
としてデータ構造を構築します。 -
.gcd
(elems : Enumerable(T))
としてデータ構造を構築します。 -
.max
(elems : Enumerable(T))
としてデータ構造を構築します。 -
.min
(elems : Enumerable(T))
としてデータ構造を構築します。
Instance Method Summary
-
#[]
(range : Range(Int | Nil, Int | Nil))
#prod
へのエイリアスです。 -
#[]
(i)
を返します。 -
#[]?
(range : Range(Int | Nil, Int | Nil))
#prod?
へのエイリアスです。 -
#[]?
(i)
を返します。 -
#prod
(range : Range(Int | Nil, Int | Nil))
range
の表す範囲の要素の総積 を返します。 -
#prod?
(range : Range(Int | Nil, Int | Nil))
range
の表す範囲の要素の総積 を返します。 - #size : Int32
Constructor Detail
Class Method Detail
Instance Method Detail
range
の表す範囲の要素の総積
rmq = SparseTable(Int32).min([2, 7, 1, 8, 1])
rmq.prod(0...3) # => 1
range
の表す範囲の要素の総積
nil
を返します。
rmq = SparseTable(Int32).min([2, 7, 1, 8, 1])
rmq.prod(0...3) # => 1