Skip to content

Latest commit

 

History

History
98 lines (86 loc) · 5.4 KB

README.md

File metadata and controls

98 lines (86 loc) · 5.4 KB

data_structure

Big Integer

bigint.hpp
多倍長整数(simple multiplication, FFT, karatsuba)

Binary Indexed Tree

binary_indexed_tree.hpp
端からの和の取得, 一点への加算がO(logN)でできるデータ構造
2次元版は更新がある時のみ使う.

int128_t

int128.hpp
128bit整数用のツール

  • stream output for int128_t
  • convert string to int128_t

Lazy Segment Tree

lazy_segment_tree.hpp
遅延評価セグメントツリー(区間更新, 区間取得) 参考: hatenablog

Mergable Range Set

mergable_range_set.hpp
区間を持ち, 重なりがある場合にマージするデータ構造

Segment Tree

segment_tree_pu_rq.hpp
セグメントツリー (点更新, 区間取得)

Treap

treap.hpp
平衡二分探索木, Implicit Treapは, 区間取得, k番目の要素をとる, 区間反転などができる

Union Find

union_find.hpp
素集合データ構造 (uniteとfindを高速に行う)

Wavelet Matrix

wavelet_matrix.hpp
文字列などの索引

Median

median.hpp
中央値

  • Median

Compressed2DSegmentTree

クエリ先読みによる2次元セグメント木のメモリ削減
compressed2d_segment_tree.hpp

  • Compressed2DSegmentTree

Sparse Table

(1<<i)ごとに要素の最小値(最大値)を保持しておきクエリにO(1)で返答する
sparse_table_.hpp