组合数学基础

排列与组合

  • 排列:
  • 组合:
  • 二项式定理:
  • 多重集排列:

Lucas 定理

对于素数 ,有:

long long lucas(long long n, long long k, long long p) {
  if (k == 0) return 1;
  return C(n % p, k % p, p) * lucas(n / p, k / p, p) % p;
}

Catalan 数

递推:

应用:合法括号序列、二叉树计数、出栈序列、网格路径(不越过对角线)。

容斥原理

练习题目

题目描述
P3807 【模板】卢卡斯定理Lucas 定理求组合数
P1044 [NOIP2003] 栈Catalan 数
P1450 [HAOI2008] 硬币购物容斥原理+背包

相关链接

来源:OI-wiki combination.md & catalan.md & inclusion-exclusion-principle.md

多平台练习

| 洛谷 | 本题单 | 竞赛基础 |
| POJ (北大) | PKU JudgeOnline | 经典题目,适合巩固 |
| HDU (杭电) | HDU OJ | 暑期多校训练 |
| Codeforces | Codeforces | 国际竞赛,适合提升 |