首页 > 其他 > 详细

组合数学---卡特兰数

时间:2020-02-19 15:17:50      阅读:51      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 

技术分享图片
long long f[25];
int main() {
  f[0] = 1;
  cin >> n;
  for (int i = 1; i <= n; i++) f[i] = f[i - 1] * (4 * i - 2) / (i + 1);
  //这里用的是常见公式2
  cout << f[n] << endl;
  return 0;
}
View Code

可以解决的问题:
1.括号匹配问题,n对括号有多少种匹配方式?

2.进出栈问题,一个无穷大的栈,1,2,3...N 有多少种不同的出栈方式

3.二叉树种类问题:n个节点构成的二叉树,共有多少种不同情形

4.n*n的网格从左下走到右上角,不可走对角线,有多少种不同走法

5.凸多边形分割问题:求一个凸多边形区域划分成三角形区域的方法

6.集合划分问题:对于集合{1,2,3,...n}的不交叉划分的数目是多少

7.乘积重组问题:矩阵链乘P=a1*a2*a3*...an

8.连线不相交问题:在圆上有2n个点,将这些点连起来使得所得到的n条线段不相交的方法数

9.高矮排队问题:2n个高矮不同的人,每排必须是高到矮的顺序,而且第二排比第一排高,问排列的方式有多少种

10.门票找钱问题:

11.

组合数学---卡特兰数

原文:https://www.cnblogs.com/hznumqf/p/12331222.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!