スパゲッティ屋さん
Kyopro Visualizer
Library
必要なところだけ作る遅延セグ木
概要
連続かつ値が等しい要素の区間を1つのノードに乗せる
1回の更新で最大2つの区間が分割されてノードが2つ増える
分割された時に繰り返し二乗法で値を再計算する
操作
constructor(Idx minf, Idx inf)
: 全要素単位元で初期化、[minf, inf)を扱える
set(Idx p, T x)
: p番目の要素をxにする
get(Idx p)
: p番目の要素を返す
apply(Idx l, Idx r, F lz)
: [l, r)にlzを作用
prod(Idx l, Idx r)
: [l, r)の要素のモノイド積を返す
all_prod()
: [minf, inf)の要素のモノイド積を返す
max_right(Idx l, f)
: f([l, r)の要素のモノイド積)がtrueである最大のr
min_left(Idx r, f)
: f([l, r)の要素のモノイド積)がtrueである最小のl
実装
使用例1
提出(Library Checker)
使用例2
提出(ネタバレ注意)
使用例3
提出(ネタバレ注意)