Catalan数总结

最常用的两个式子:

\[Cat_{n}=\frac{2n \choose n}{n+1} \]

\[Cat_{n}={2n \choose n} - {2n \choose n-1} \]

常见的问题形式

  1. n个左括号和n个右括号所能组成的合法序列数为\(Cat_n\)
  • 扩展:有n个左括号,n个右括号,恰有2m个括号失配的序列数为\({2n \choose n-m}-{2n \choose n-m-1}\)
  1. 1,2,3,...n经过一个栈,能形成的合法出栈序列数为\(Cat_n\)

  2. n个节点构成的不同二叉树数量为\(Cat_n\)

  3. 在笛卡尔坐标系(平面直角坐标系)中从\((0,0)\)走到\((n,n)\),只向上或向右走,不接触直线\(x=y\)的方案数,为\(Cat_n\)

  • 这也是Catalan数最常见的理解形式。常见的证明方法为对折法,即将一条非法路径碰触到直线\(y=x+1\)之后的部分沿该直线对折,最后终点为\((n-1,n+1)\)。用合法路径数减去非法路径数即为所求答案。即\({2n \choose n} - {2n \choose n-1}\)
  1. 不相交弦:在圆上选择2n个点,将这些点两两连接使所得的n条线段不相交的方案数。

  2. n个10元,n个5元,多少种方案使得用10元时一定有5元可供找零。

一篇介绍Catalan数的博客

以上只是列举了部分内容,Catalan数的形式远不止这些。

例题

题目描述

出个题就好了.这就是出题人没有写题目背景的原因.
你在平面直角坐标系上.
你一开始位于\((0,0)\)
每次可以在上/下/左/右四个方向中选一个走一步.
即:从\((x,y)\)走到\((x,y+1),(x,y-1),(x-1,y),(x+1,y)\)四个位置中的其中一个.
允许你走的步数已经确定为\(n\)。现在你想走\(n\)步之后回到\((0,0)\)。但这太简单了.你希望知道有多少种不同的方案能够使你在\(n\)步之后回到\((0,0)\)。当且仅当两种方案至少有一步走的方向不同,这两种方案被认为是不同的.
答案可能很大所以只需要输出答案对\(10^9+7\)取模后的结果。
这还是太简单了,所以你给能够到达的格点加上了一些限制.一共有三种限制,加上没有限制的情况,一共有四种情况,用0,1,2,3标号:
0.没有任何限制,可以到达坐标系上所有的点,即能到达的点集为{(x,y)|x,y为整数}
1.只允许到达x轴非负半轴上的点.即能到达的点集为{(x,y)|x为非负数,y=0}
2.只允许到达坐标轴上的点.即能到达的点集为{(x,y)|x=0或y=0}
3.只允许到达x轴非负半轴上的点,y轴非负半轴上的点以及第1象限的点.即能到达的点集为{(x,y)|x>=0,y>=0}

分析

第一种情况:枚举左右(或上下)走的步数(0~n)(每次+2)。

\[ans = \sum{{n \choose i} \times {i \choose {\frac{i}{2}}} \times {n-i \choose \frac{{n-i}}{2}}} \]

第二种情况:

\[ans = Cat(\frac{n}{2}) \]

第三种情况是个DP,就略过了。

第四种情况:

类比第一种情况,同样是枚举左右(上下)

\[ans = \sum{{n \choose i} \times Cat(\frac{i}{2}) \times Cat(\frac{n-i}{2}) } \]

posted @ 2020-10-27 16:18  zfio  阅读(116)  评论(4编辑  收藏  举报