Enumeration
(Math/Enumeration.hpp)
組み合わせ Modint
を乗せる想定
コンストラクタ
fact
, finv
, inv
配列を作成.
計算量
fact
$n!$を求める.
計算量
-
update
されていない場合、n
までupdate
を行う。
- それ以降は$O(1)$
finv
$(n!)^{-1}$を求める.
計算量
-
update
されていない場合, n
までupdate
を行う.
- それ以降は$O(1)$
inv
$n^{-1}$を求める.
計算量
-
update
されていない場合, n
までupdate
を行う.
- それ以降は$O(1)$
nPk
Mint enu.nPk(int n, int k)
${}_nP_k$を求める. $k < 0$または$n < k$の場合, $0$を返す.
計算量
-
update
されていない場合, n
までupdate
を行う.
- それ以降は$O(1)$
nCk
Mint enu.nCk(int n, int k)
${}_nC_k$を求める. $k < 0$または$n < k$の場合, $0$を返す.
計算量
-
update
されていない場合, n
までupdate
を行う.
- それ以降は$O(1)$
nHk
Mint enu.nHk(int n, int k)
${}_nH_k$を求める. $k < 0$または$n < 0$の場合, $0$を返す.
計算量
-
update
されていない場合, n+k-1
までupdate
を行う.
- それ以降は$O(1)$
Catalan
カタラン数${}{2n}C_n-{}{2n}C_{n-1}$ を計算する.これは,$n$個の()
の正しい括弧列の個数に一致する。
本質は$c_n+1 = \sum_{i=0}^{n} c_i c_{n-i}$ この漸化式を解いたものがカタラン数となる。
計算量
-
update
されていない場合, 2n
までupdate
を行う.
- それ以降は$O(1)$
Verified with
Code
Back to top page