cp-library

C++ Library for Competitive Programming

View the Project on GitHub emthrm/cp-library

Aliens DP

$n$ 頂点有向非巡回グラフ $G = (V, E \mathrel{:=} \lbrace (i, j) \in \lbrace 0, 1, \ldots, n - 1 \rbrace \times \lbrace 0, 1, \ldots, n - 1 \rbrace \mid i < j \rbrace)$ を考える。辺 $(i, j) \in E$ の重みを $c(i, j) \in \mathbb{Z}$ とおく。

$c$ が concave quadrangle inequality を満たすならば、ちょうど $d$ 辺通る始点 $0$、終点 $n - 1$ の道の内、最短のものの長さを高速に求められる。

時間計算量

$G$ 上で始点 $0$、終点 $n - 1$ の最短路長を $O(f(N))$ 時間で求められるとおくと $O(f(N) \log{\max_{(i, j) \in E} \lvert c(i, j)} \rvert)$

参考文献

TODO

Burrows–Wheeler 変換 (Burrows–Wheeler transform)

TODO

Cartesian tree

TODO

color-coding

TODO

dominator tree

TODO

Dulmage–Mendelsohn decomposition

TODO

Hackenbush

TODO

Lenstra–Lenstra–Lovász lattice basis reduction algorithm

TODO

lexicographic breadth-first search

TODO

link-cut tree

TODO

Lyndon factorization

TODO

Menger’s theorem

TODO

permutation tree

TODO

policy based data structures

TODO

rope

TODO

sack (DSU on tree)

TODO

sliding-window aggregation

TODO

top tree

TODO

triangle enumeration

TODO

van Emde Boas tree

TODO

y-fast trie

TODO

ウェーブレット行列 (wavelet matrix)

TODO

ウェーブレット木 (wavelet tree)

TODO

永続データ構造 (persistent data structure)

TODO

階乗 (factorial)

\[n! = \prod_{i = 1}^n i\]

ウィルソンの定理

\[(m - 1)! \equiv -1 \pmod{m}\]

TODO

ガウス整数 (Gaussian integer)

TODO

簡潔ビットベクトル (succinct indexable dictionaries)

TODO

木の同型性判定

TODO

グラフの同型性判定

TODO

構文解析 (parse)

TODO

ゴモリ・フー木 (Gomory–Hu tree)

TODO

順序木

TODO

乗法的関数 (multiplicative function)

$n \in \mathbb{N}^+$ に対して定義される数論的関数 $f(n)$ の内、$a \perp b$ を満たす $a, b \in \mathbb{N}^+$ に対して $f(ab) = f(a)f(b)$ が成り立つものである。

参考文献

TODO

線形マトロイドパリティ問題

TODO

中国人郵便配達問題 (Chinese postman problem)

TODO

テトレーション (tetration)

TODO

ヒープ (heap)

TODO

非不偏ゲーム (partisan game)

TODO

平衡二分探索木 (self-balancing binary search tree)

TODO

平面グラフ (plane graph)

TODO

文字列の検索

TODO

約数関数 (divisor function)

\[\sigma_x(n) = \sum_{d \mid n} d^x\]

参考文献

TODO