パッケージ library
クラス Tree.LazySegmentTree<T>
- java.lang.Object
-
- library.Tree.LazySegmentTree<T>
-
- 含まれているクラス:
- Tree
private static class Tree.LazySegmentTree<T> extends java.lang.ObjectLazy Segment Treeセグ木の基本操作に加えて,区間更新が O(logN) で行える
-
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 private java.util.function.BinaryOperator<T>comparatorprivate intexponentprivate TinitialValueprivate T[]internalArrayprivate T[]lazyArray
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 LazySegmentTree(int size, T initialValue, java.util.function.BinaryOperator<T> comparator)LazySegmentTree(java.util.List<T> list, T initialValue, java.util.function.BinaryOperator<T> comparator)
-
メソッドの概要
すべてのメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 private voidevaluate(int index)private T[]initArray(java.util.List<T> list, T initialValue)private T[]initLazyArray(T initialValue)(package private) Tquery(int left, int right)クエリ クエリの区間を [left, right) の半開区間で渡すことに注意private Tquery(int left, int right, int begin, int end, int k)(package private) voidupdate(int index, java.util.function.UnaryOperator<T> operator)値の更新(package private) voidupdate(int index, T value)値の更新(package private) voidupdateRange(int left, int right, T value)区間更新 区間を [left, right) の半開区間で渡すことに注意private voidupdateRange(int left, int right, T value, int begin, int end, int k)
-
-
-
メソッドの詳細
-
update
void update(int index, T value)値の更新- パラメータ:
index- "0-indexed"のインデックスvalue- 更新後の値
-
update
void update(int index, java.util.function.UnaryOperator<T> operator)値の更新- パラメータ:
index- "0-indexed"のインデックスoperator- 更新式
-
updateRange
void updateRange(int left, int right, T value)区間更新 区間を [left, right) の半開区間で渡すことに注意- パラメータ:
left- "0-indexed"のクエリの左端right- "0-indexed"のクエリの右端 + 1 つまり"1-indexed"のクエリの右端value- 更新する値
-
updateRange
private void updateRange(int left, int right, T value, int begin, int end, int k)
-
query
T query(int left, int right)
クエリ クエリの区間を [left, right) の半開区間で渡すことに注意- パラメータ:
left- "0-indexed"のクエリの左端right- "0-indexed"のクエリの右端 + 1 つまり"1-indexed"のクエリの右端- 戻り値:
- クエリ結果
-
query
private T query(int left, int right, int begin, int end, int k)
-
evaluate
private void evaluate(int index)
-
-