【XSY3726】大猫熊和他的k边形(三角剖分,卡特兰数)

这篇博客探讨了有标号多边形的三角剖分数与卡特兰数之间的关系,通过动态规划证明了两者间的递推公式,并展示了如何利用这种关系来计算特定路径的方案数。此外,还介绍了如何通过组合意义证明这一结论,并提及了扩展拉格朗日反演在解决此类问题中的应用。
摘要由CSDN通过智能技术生成

记录一下两个结论。

  • 有标号 n n n 边形的三角剖分数等于 B n − 2 B_{n-2} Bn2,其中 B B B 是卡特兰数。

证明:

考虑 DP,设 C n C_n Cn 为有标号 n n n 边形的三角剖分数,考虑与 1 1 1 号点相连的最小的那条边 ( 1 , 1 + i ) (1,1+i) (1,1+i)(若没有与 1 1 1 号点相连的边则钦定与 1 1 1 号点相连的最小的那条边为 ( 1 , n ) (1,n) (1,n)),有:
C n = ∑ i = 2 n − 1 C i C n − i + 1 C_n=\sum_{i=2}^{n-1} C_{i}C_{n-i+1} Cn=i=2n1CiCni+1
注意和式里面不是 C i + 1 C n − i + 1 C_{i+1}C_{n-i+1} Ci+1Cni+1 的原因是我们钦定了与 1 1 1 号点相连的最小的那条边为 ( 1 , 1 + i ) (1,1+i) (1,1+i),那么在这条边分割出的那个 i + 1 i+1 i+1 边形中, 1 1 1 需要满足没有出边,也就是说一定有边 ( 2 , 1 + i ) (2,1+i) (2,1+i),然后就转化为了 i i i 边形的三角剖分问题。

将这个式子稍作位移:
C n + 2 = ∑ i = 2 n + 1 C i C n − i + 3 = ∑ i = 0 n − 1 C i + 2 C n − i + 1 \begin{aligned} C_{n+2}&=\sum_{i=2}^{n+1}C_iC_{n-i+3}\\ &=\sum_{i=0}^{n-1}C_{i+2}C_{n-i+1} \end{aligned} Cn+2=i=2n+1CiCni+3=i=0n1Ci+2Cni+1
B n = C n + 2 B_n=C_{n+2} Bn=Cn+2,发现就是卡特兰数的递推式:
B n = ∑ i = 0 n − 1 B i B n − i − 1 B_n=\sum_{i=0}^{n-1}B_iB_{n-i-1} Bn=i=0n1BiBni1

顺便说一下为啥这是卡特兰数的递推式:考虑枚举最后一次碰到 y = x y=x y=x 是位置 ( i , i ) (i,i) (i,i),然后就是从 ( i + 1 , i ) (i+1,i) (i+1,i) 走到 ( n , n − 1 ) (n,n-1) (n,n1),即为 B n − i − 1 B_{n-i-1} Bni1

  • [ x n ] B ( x ) k [x^n]B(x)^k [xn]B(x)k 为从 ( 0 , 0 ) (0,0) (0,0) 走到 ( n + k − 1 , n ) (n+k-1,n) (n+k1,n) 且不越过 y = x y=x y=x 的方案数。

证明是一个比较妙的组合意义。

首先 [ x n ] B ( x ) k [x^n]B(x)^k [xn]B(x)k 相当于如下路径的方案数:这是一条 k k k 段的路径,每一段都是从 ( i , i ) (i,i) (i,i) 走到 ( j , j ) (j,j) (j,j) i ≤ j i\leq j ij)。

然后我们考虑对这条路径做一个映射。先设这 k k k 段分别是 ( 0 , 0 ) → ( p 1 , p 1 ) → ( p 2 , p 2 ) → ⋯ → ( p k − 1 , p k − 1 ) → ( n , n ) (0,0)\to (p_1,p_1)\to (p_2,p_2)\to \cdots\to (p_{k-1},p_{k-1})\to (n,n) (0,0)(p1,p1)(p2,p2)(pk1,pk1)(n,n),然后把每一段在前面的路径的基础上向右偏移一位,就映射到了一条 ( 0 , 0 ) (0,0) (0,0) ( n + k − 1 , n ) (n+k-1,n) (n+k1,n) 且不越过 y = x y=x y=x 的路径。

然后证明每一条 ( 0 , 0 ) (0,0) (0,0) ( n + k − 1 , n ) (n+k-1,n) (n+k1,n) 且不越过 y = x y=x y=x 的路径都能一一对应回原来那条路径:我们先找到这条路径最后一次碰到 y = x y=x y=x 的位置 ( p 1 , p 1 ) (p_1,p_1) (p1,p1),再找到这条路径最后一次碰到 y = x − 1 y=x-1 y=x1 的位置 ( p 2 + 1 , p 2 ) (p_2+1,p_2) (p2+1,p2),……,再找到这条路径最后一次碰到 y = x − ( k − 2 ) y=x-(k-2) y=x(k2) 的位置 ( p k − 1 + k − 2 , p k − 1 ) (p_{k-1}+k-2,p_{k-1}) (pk1+k2,pk1)。这样我们就得到了 p 1 , ⋯   , p k p_1,\cdots,p_k p1,,pk,不难发现路径 ( 0 , 0 ) → ( p 1 , p 1 ) → ( p 2 , p 2 ) → ⋯ → ( p k − 1 , p k − 1 ) → ( n , n ) (0,0)\to (p_1,p_1)\to (p_2,p_2)\to \cdots\to (p_{k-1},p_{k-1})\to (n,n) (0,0)(p1,p1)(p2,p2)(pk1,pk1)(n,n) 恰好就是映射回这条路径。

另外提一句,求出 [ x n ] B ( x ) k [x^n]B(x)^k [xn]B(x)k 还可以用扩展拉格朗日反演。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值