Catalan数
该数列经常出现在计数问题中
特征
递推关系
常见表达式
前两个形式将它转换为阶乘和组合数的计算问题,第三个形式则提供了顺次计算的递推公式
应用
规模为
因此Catalan数广泛用于各类具有类似递归结构的问题中
路径计数问题
有一个大小为
总的路径数为
。不合法的路径恰好可以与到 的路径建立一一对应,从而得到不合法路径数为 ,所以合法的为二者之差。
圆内不相交弦计数/圆上点配对问题
圆上有
将点按顺序编号,考虑与编号1配对的点k,将圆分成两部分,每部分再独立配对,得到递推
多边形剖分三角计数问题
对角线不相交的情况下,将一个凸
固定某个顶点,把与该顶点连成三角形的另一顶点作为切点,分割成左右两个子问题,变为递推形式
二叉树计数问题
含有
含有
选择某个元素作根,左子树大小为
,右子树大小为 ,左右子树独立,乘法得到递推。
括号序列计数问题
由
可以映射为路径问题
出栈序列计数问题/避免模式排列问题
一个栈进栈序列为
可以映射为括号序列问题
数列计数问题
由
可以映射为括号序列问题
e.g. P1044 栈
1 | vector<ll> cat(20); |