组合数学基础
排列与组合
- 排列:
- 组合:
- 二项式定理:
- 多重集排列:
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 | 国际竞赛,适合提升 |