Module ds

Source
Expand description

データ構造

§セグメント木系の比較

データ構造新規作成区間更新点更新区間取得点取得
Segtreenew(n, M)assign(i, X), update(i, X)fold(l..r)
DualSegtreenew(n, M)update(l..r, X)get(i)
LazySegtreenew(n, A)update(l..r, X)fold(l..r)
DynamicSegtreenew(M)assign(i, X)fold(l..r)
DynamicDualSegtreenew(M)update(l..r, X)get(i)
DynamicLazySegtreenew(A)update(l..r, X)fold(l..r)
PersistentSegtreenew(n, M)assign(i, X)fold(l..r)
SparseTablenew(s, A)fold(l..r)
DisjointSparseTablenew(s, S)fold(l..r)
FenwickTreenew(n, G)update(i, X)fold_to(..r), fold(l..r)
SegtreeBeatsnew(n)chmin(l..r, X), chmax(l..r, X), add(l..r, X)sum(l..r, X)
StarrySkyTreenew(n)update(l..r, X)fold(l..r)

Modules§

aho_corasick
Aho-Corasick法
binary_trie
非負整数を2進数として管理する。
bitset
任意サイズのbit列を扱う。
cht
Convex Hull Trick
cumulative_sum_1d
1次元累積和
cumulative_sum_2d
2次元累積和
disjoint_sparse_table
半群の列の区間取得($O(1)$)ができる。
dual_segtree
モノイド列の区間更新・点取得($O(\log n)$, $O(\log n)$)ができる。
dynamic_dual_segtree
動的双対セグメント木
dynamic_lazy_segtree
動的遅延セグメント木
dynamic_segtree
動的セグメント木
fenwick
可換群の点更新・区間取得($O(\log n)$, $O(\log n)$)ができる。
fenwick_add
可換な加減算に特化したFenwickTree
fenwick_on_fenwick
Fenwick木上にFenwick木を構築する。
foldable_deque
半群で畳み込み可能なdeque
integer_set
Mexを求められるデータ構造
interval_heap
最大値と最小値を得られるヒープ
lazy_segtree
モノイド列の区間更新・区間取得($O(\log n)$, $O(\log n)$)ができる。
lazy_segtree_coeff
係数乗算付き区間加算区間総和遅延セグ木
lazy_skew_heap
遅延加算付き融合可能ヒープ
li_chao
Li-Chao tree
link_cut_tree
Link-Cut Tree
linked_list
連結リスト
merge_sort_tree
Merge-sort Tree
multiset
同一要素を複数個挿入可能なSet
ordered_map
順序付き辞書
ordered_set
順序付き集合
palindromic_tree
回文木
partially_persistent_unionfind
部分永続UnionFind
persistent_array
永続配列
persistent_queue
永続キュー
persistent_segtree
永続セグメントツリー
persistent_stack
永続スタック
persistent_unionfind
永続UnionFind
potential_unionfind
ポテンシャル付きUnionfind
qword_tree
64分木
range_search_tree
領域内の点を列挙する
rollbackable_unionfind
ロールバック可能Unionfind
rollbackable_vector
ロールバック可能Vec
segtree
モノイド列の点更新・区間取得($O(\log n)$, $O(\log n)$)ができる。
segtree_2d
二次元のセグメント木
segtree_beats
Segment Tree Beats
segtree_linear_add
区間一次関数加算セグメントツリー
segtree_linear_add_range_sum
区間一次関数加算区間総和セグメントツリー
segtree_on_segtree
セグメント木上にセグメント木を構築する。
skew_heap
融合可能ヒープ
sparse_table
冪等性と結合性をもつ列の区間取得($O(1)$)ができる。
sparse_table_2d
冪等性と結合性をもつ2次元列の区間取得($O(1)$)ができる。
splay_tree
Splay Tree
starry_sky_tree
区間加算・区間Max(Min)
starry_sky_tree_count
区間加算・個数総和付き区間Max(Min)
succinct_bitvec
簡潔ビットベクトル
trie
Trie木
unionfind
素集合データ構造
usize_set
usizeを用いた集合表現
wavelet_matrix
Wavelet matrix