olpheの競プロ帖

競プロ問やアルゴリズム等の考察します

セグメントツリー

https://github.com/olphe/temp/blob/master/segment_tree.cpp

宣言時に要素数と、min,maxのどっちを求めるかを決める。

v:各要素

l:各要素がもつ範囲の一番左

r:各要素がもつ範囲の一番右

is_min:最小値を求めるか否かの判別をする。

Update,TopDown:一気に全体更新するときに使う。

RMQ:区間の最小値(最大値)を求めるときに使う。

Left:範囲の一番左を求めるときに使う。

Right:範囲の一番右を求めるときに使う。

Insert:代入するときに使う。更新するかしないかも選べる。