打牌的贝贝
打牌的贝贝


「算法入门笔记」卡特兰数
满足条件的01序列

给出了卡特兰数最基本的使用情景
其中:
卡特兰数通项:\(C_n = \frac{C_{n+1}^{m}}{n+1} \quad\)
卡特兰数满足以下递推式:
\(C_1 = 1,C_n = C_{n-1}\frac{4*n-2}{n+1} \quad\)
int fact[N], infact[N];
int qmi(int a, int b)
{
int res = 1;
while (b)
{
if (b & 1)
res = res * a % MOD;
a = a * a % MOD;
b >>= 1;
}
return res;
}
void init()
{
fact[0] = infact[0] = 1;
for (int i = 1; i < N; i++)
fact[i] = fact[i - 1] * i % MOD;
infact[N - 1] = qmi(fact[N - 1], MOD - 2);
for (int i = N - 2; i; i--)
infact[i] = infact[i + 1] * (i + 1) % MOD;
}
int C(int a, int b)
{
return fact[a] * infact[a - b] % MOD * infact[b] % MOD;
}
void solve()
{
cin >> n;
cout << C(2 * n, n) * qmi(n + 1, MOD - 2) % MOD << endl;
}

浙公网安备 33010602011771号