卡特兰数

考虑由 \(n\)\(+1\)\(n\)\(-1\) 构成的 \(2n\) 项序列,如果任意位置的前缀和非负,这样的序列的个数为 \(C_n=\frac{1}{n+1}\binom{2n}{n}\)。对应为第 \(n\) 个卡特兰数。

满足典型的案例如:
括号序列匹配(左括号大于等于右括号)、进出栈序列(进栈大于等于出栈)、不穿越对角线的方格路径(横向次数大于等于纵向)、二叉树计数。

卡特兰数有一个递推公式:
\(C_n=C_0C_{n-1}+C_1C_{n-2}+C_2C_{n-3}...C_{n-1}C_0\),有时候观察题目的结果满足这样的性质。

更多的是用在变种的不穿越对角线的方格路径计数上。考虑一个既不是正方形,也不在对角线的情况。
图片
\(S \rightarrow T\) 的路径数,直接组合计数 \(\binom{13+6}{6}\)
\(S\) 下方 \(3\) 格有一条红线,现在要求不能跨过红线。可以在红线外侧再画一根蓝线,问题等价于不能碰触蓝线。
此时可以找到 \(S\) 关于蓝线的镜像点,任何碰触蓝线的路径都可以唯一地与 \(S'\) 到该碰触点的路径对应。方式为首次碰触前横竖移动对调,首次碰触后移动保持一致。
所以从 \(S \rightarrow T\) 的合法方案数即为总方案减去 \(S' \rightarrow T\) 的方案。
结果为:\(\binom{13+6}{6}-\binom{13+6}{6-4}\)
总结为如果原来的横向为 \(n\),纵向为 \(m\),边界在起点下方 \(b\) 处,则合法方案为 \(\binom{n+m}{m}-\binom{n+m}{m-(b+1)}\)。当然,如果 \(b=m\),则边界正好在角落,就不可能越界,从公式看,组合数第二项为 \(0\)

还有一种情况,边界线在 \(S\) 的右侧。
图片
如果红线在 \(S\) 右侧 \(8\) 格,结果为:\(\binom{13+6}{6}-\binom{13+6}{13-9}\)
总结为如果原来的横向为 \(n\),纵向为 \(m\),边界在起点右方 \(b\) 处,则合法方案为 \(\binom{n+m}{n}-\binom{n+m}{n-(b+1)}\)。当然,如果 \(b=n\),则边界正好在角落,就不可能越界,从公式看,组合数第二项为 \(0\)
此外,此构型下,如果红线向左 \(2\) 格,如果不跨线将无法到达终点。
此时公式计算结果为 \(\binom{13+6}{6}-\binom{13+6}{13-7}=0\)
如果再走一步 \(\binom{13+6}{6}-\binom{13+6}{13-6}<0\),这是因为从 \(S' \rightarrow T\) 的路径并不完全对应 \(S \rightarrow T\) 的跨蓝线路径,因为 \(S'\) 已经可以不经过蓝线到达 \(T\) 了。

总结,边界线在哪条边上,组合数的下部分就是那条边的长度减去 (距离+1)。如果边界线在长边上,那么距离至少应该为 长边-短边,否则无解。

posted @ 2026-06-15 17:20  qwynick  阅读(9)  评论(0)    收藏  举报