競プロライブラリ by NachiaVivias (C++)
各種ライブラリ
Array
- 平衡二分探索木による配列
<nachia/array/bbst-list.hpp>
- Cartesian tree
<nachia/array/cartesian-tree.hpp>
- CSR 表現を用いた二次元配列
<nachia/array/csr-array.hpp>
- 集約値取得可能な deque
<nachia/array/deque-operate-aggregation.hpp>
- 約数包除・GCD畳み込み
<nachia/array/divisor-convolution.hpp>
- 遅延セグメント木
<nachia/array/lazy-segtree.hpp>
- 一点更新列で得られる配列の辞書順比較
<nachia/array/point-update-lex-sort.hpp>
- セグメント木
<nachia/array/segtree.hpp>
Bit
Counting
Geometry
Graph
- Biconnected Components ( 2-連結成分 )
<nachia/graph/biconnected-components.hpp>
- 二部グラフの辺彩色
<nachia/graph/bipartite-edge-coloring.hpp>
- Chordal Graph の判定
<nachia/graph/chordal-graph-recognition.hpp>
- 頂点彩色数
<nachia/graph/chromatic-number.hpp>
- Connected Components ( 連結成分 )
<nachia/graph/connected-components.hpp>
- C4 数え上げ
<nachia/graph/count-c4.hpp>
- Dijkstra法 ( ダイクストラ法 )
<nachia/graph/dijkstra.hpp>
- Online Dynamic Connectivity
<nachia/graph/dynamic-connectivity.hpp>
- オイラー路の構築
<nachia/graph/eulerian-trail.hpp>
- Graph 構造体・辺のリスト
<nachia/graph/graph.hpp>
- Incremental (Offline) SCC
<nachia/graph/incremental-scc-offline.hpp>
- Strongly Connected Components ( 強連結成分 )
<nachia/graph/strongly-connected-components.hpp>
- Three-Edge-Connected Components ( 3-辺連結成分 )
<nachia/graph/three-edge-connected-components.hpp>
- Two-Edge-Connected Components ( 2-辺連結成分 )
<nachia/graph/two-edge-connected-components.hpp>
Linear Modulo
- 固有多項式
<nachia/linear-modulo/characteristic-polynomial.hpp>
- 線型方程式
<nachia/linear-modulo/linear-equation.hpp>
- 行列(剰余体 : $\mathbb{F}_p=\mathbb{Z}/p\mathbb{Z}$ )
<nachia/linear-modulo/matrix-modulo.hpp>
Math
- $N$ 以下の素数の個数
<nachia/math/counting-primes.hpp>
- 明示的な素数篩(エラトステネスの篩)
<nachia/math/prime-sieve-explicit.hpp>
- 有理数の二分探索
<nachia/math/rational-number-search.hpp>
Multi-dimensional
- $2$ 次元矩形クエリ
<nachia/multi-dimensional/two-d-rectangle-query.hpp>
- グリッド上の隣接関係
<nachia/multi-dimensional/grid-adj.hpp>
Permutation
Range Query
- point set range min
<nachia/range-query/point-set-range-min.hpp>
- range add count top k
<nachia/range-query/range-add-count-top-k.hpp>
- range add range min
<nachia/range-query/range-add-range-min.hpp>
- range LIS
<nachia/range-query/range-lis.hpp>
Set
- decremental predecessor problem
<nachia/set/decremental-predecessor-query>
- disjoint set union
<nachia/set/dsu.hpp>
- 分割の列挙
<nachia/set/enumerate-partitions.hpp>
- subset sum problem
<nachia/set/subset-sum.hpp>
- 64 分木
<nachia/set/word-size-tree.hpp>
String
Tree
- 全方位木 DP
<nachia/tree/tree-dp.hpp>
- Incremental Forest
<nachia/tree/incremental-forest.hpp>
- cluster のマージ過程:静的な top tree
<nachia/tree/static-top-tree.hpp>
- heavy-light decomposition
<nachia/tree/heavy-light-decomposition.hpp>
- 木の重心分解
<nachia/tree/centroid-decomposition.hpp>
- 重心分解二分探索木
<nachia/tree/centroid-decomposition-binary-tree.hpp>
- 木の中心
<nachia/tree/tree-center.hpp>
- 木の重心
<nachia/tree/tree-centroid.hpp>
- 木の直径
<nachia/tree/tree-diameter.hpp>
- 木の同型性判定 AHU algorithm
<nachia/tree/ahu-algorithm.hpp>