卡特兰数总结

卡特兰数的三种基本表示方式:

f ( n ) = C 2 n n n + 1 = ∑ i = 1 n f ( i − 1 ) ∗ f ( n − i ) = C 2 n n − C 2 n n − 1 f(n)=\cfrac{C_{2n}^n}{n+1}=\sum\limits_{i=1}^{n}f(i-1)*f(n-i)=C_{2n}^{n}-C_{2n}^{n-1} f(n)=n+1C2nn=i=1nf(i1)f(ni)=C2nnC2nn1

卡特兰数经典模型:

n n n 0 0 0 n n n 1 1 1,有多少种排列方式使得任意一个前缀中, 1 1 1的个数不少于 0 0 0的个数?

卡特兰数经典模型的证明:

我们可以在数轴上看这个问题,从原点出发,将 1 1 1看成向右上走一步, 0 0 0看成向右下走一步,那么走完这 2 n 2n 2n步会到达点 ( 2 n , 0 ) (2n,0) (2n,0)。不做限制时的走法是 C 2 n n C_{2n}^n C2nn,即在 2 n 2n 2n步中选 n n n步放 1 1 1。当我们加上限制,任意一个前缀中, 1 1 1的个数不少于 0 0 0的个数,那么我们的路线不可能触碰到 y = − 1 y=-1 y=1 这条线。
在这里插入图片描述

考虑这种走法,我们在第四步碰到了 y = − 1 y=-1 y=1这条线,我们在这里对后面的所有点以 y = − 1 y=-1 y=1为对称轴做轴对称,就有下图:
在这里插入图片描述
我们最终走到了点 ( 2 n , − 2 ) (2n,-2) (2n,2),实际上,不论我们中间怎么走,只要在第一次碰到 y = − 1 y=-1 y=1时,对后面的图形做轴对称,终点都是 ( 2 n , − 2 ) (2n,-2) (2n,2)。所以不合法的情况方案数就是 C 2 n n − 1 C_{2n}^{n-1} C2nn1,即只选了 n − 1 n-1 n1 1 1 1,导致结果走到了 ( 2 n , − 2 ) (2n,-2) (2n,2)

所以该经典模型的解为: C 2 n n − C 2 n n − 1 C_{2n}^n-C_{2n}^{n-1} C2nnC2nn1

该模型经典题:P1754球迷购票问题P1722 矩阵 IIP1976 鸡蛋饼P1044 栈

卡特兰数扩展模型:

经典模型中,我们需要摆放的 0 0 0 1 1 1数量是相等的,对此问题稍加扩展, 1 1 1的数量大于 0 0 0的数量,要求任意前缀中 1 1 1的个数不少于 0 0 0的个数。

这个问题我们显然不能再用经典模型推导出来的式子进行计算,但是我们可以借鉴经典模型的推导过程。

这个模型我们最终可以走到 ( n + m , n − m ) (n+m,n-m) (n+m,nm)这个点,我们在第一次触碰到 y = − 1 y=-1 y=1时,也对后续图形做轴对称,我们可以发现,我们最终会走到点 ( n + m , m − n − 2 ) (n+m,m-n-2) (n+m,mn2),那么可以知道,当我们选择 m − 1 m-1 m1个位置放 1 1 1的时候,会走到这个点,那么此模型的解就是 C n + m n − C n + m m − 1 C_{n+m}^n-C_{n+m}^{m-1} Cn+mnCn+mm1

其实经典模型就是扩展模型的一个 n = m n=m n=m 特殊情况。

扩展模型的题:P1641 生成字符串

另外一些题:P3200 有趣的数列P2532 树屋阶梯

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值