Kyopro Library
 
読み取り中…
検索中…
一致する文字列を見つけられません
Mo 構造体

Mo's Algorithm https://ei1333.hateblo.jp/entry/2017/09/11/211011 [詳解]

#include "mo.hpp"

公開メンバ関数

 Mo (int n)
 コンストラクタ
 
void add (int l, int r)
 クエリ [l, r) を追加する
 
template<typename F1, typename F2, typename F3, typename F4, typename F5>
void execute (F1 &&add_left, F2 &&add_right, F3 &&del_left, F4 &&del_right, F5 &&out)
 クエリを実行する
 

詳解

Mo's Algorithm https://ei1333.hateblo.jp/entry/2017/09/11/211011

mo.hpp5 行目に定義があります。

構築子と解体子

◆ Mo()

Mo::Mo ( int n)
inline

コンストラクタ

mo.hpp7 行目に定義があります。

関数詳解

◆ add()

void Mo::add ( int l,
int r )
inline

クエリ [l, r) を追加する

mo.hpp13 行目に定義があります。

◆ execute()

template<typename F1, typename F2, typename F3, typename F4, typename F5>
void Mo::execute ( F1 && add_left,
F2 && add_right,
F3 && del_left,
F4 && del_right,
F5 && out )
inline

クエリを実行する

引数
add_leftadd_left(i) i 番目の要素が左から加わるときの処理
add_rightadd_right(i) i 番目の要素が右から加わるときの処理
del_leftdel_left(i) i 番目の要素が左から抜けるときの処理
del_rightdel_right(i) i 番目の要素が右から抜けるときの処理
outout(i) i 番目のクエリの答えを求めたときの処理
覚え書き
O(N sqrt(Q))

mo.hpp27 行目に定義があります。


この構造体詳解は次のファイルから抽出されました: