参考题解:
【算法】震惊!!!史上最详细的卡特兰数浅谈!!!
卡特兰数(好像很有用的说)

介绍

卡特兰数是组合数学中一种著名数列,其前几项为:

1, 2, 5, 14, 42,
132, 429, 1430, 4862, 16796,
58786, 208012, 742900, 2674440, 9694845,
35357670, 129644790, 477638700, 1767263190,
6564120420, 24466267020, 91482563640, 343059613650, 1289904147324,

通项式为:
f(n)=C2nnn+1=(2n)!(n+1)!n!f(n)=\frac{C_{2n}^{n}}{n+1}=\frac{(2n)!}{(n+1)!n!}f(n)=n+1C2nn​​=(n+1)!n!(2n)!​
递推式为:
f(n)=∑i=0n−1f(i)∗f(n−i−1)f(n)=\sum_{i=0}^{n-1}f(i)*f(n-i-1)f(n)=∑i=0n−1​f(i)∗f(n−i−1)
常用的是通项式变形:
f(n)=C2nn−C2nn−1f(n)=C_{2n}^{n}-C_{2n}^{n-1}f(n)=C2nn​−C2nn−1​

经典问题:

一.01序列问题

给出一个n,要求一个长度为2n的01序列,使得序列的任意前缀中1的个数不少于0的个数,
以下为长度为6的序列:
111000 101100 101010 110010 110100

括号问题

矩阵链乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?(h(n)种)

出栈次序问题

一个栈(无穷大)的进栈序列为1,2,3,…n,有多少个不同的出栈序列?

多边形划分为三角形问题

将一个凸多边形区域分成三角形区域的方法数?

给顶节点组成二叉树问题

给定N个节点,能构成多少种形状不同的二叉树?
  先去一个点作为顶点,然后左边依次可以取0至N-1个相对应的,右边是N-1到0个,两两配对相乘,就是h(0)*h(n-1) + h(2)*h(n-2) +…+ h(n-1)h(0)=h(n)(能构成h(N)个)

例题:

洛谷1641 生成字符串
Loj10238网格
洛谷P2532 树屋阶梯
洛谷P3200 有趣的数列

卡特兰数(简单说说)相关推荐

  1. [杂谈] 14. Catalan卡特兰数

    文章目录 1. 前言 2. 卡特兰数递推公式推导 3. 卡特兰数性质 4. 卡特兰数简单实例 实例1:进出栈问题 实例2:进出栈问题变种 实例三:电影购票问题 实例四:上班路径问题 实例五:乘法结合律 ...

  2. 卡特兰数相关及通项公式简单证明

    卡特兰数有两个递推公式,两个通项公式(或者说是一个): 规定h(0)=1h(0)=1h(0)=1, h(1)=1h(1)=1h(1)=1 hn=∑i=0n−1hihn−ih_n=\displaysty ...

  3. 洛谷 P1044 栈 [卡特兰数]

    题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两种最重要的操作,即 poppop (从栈顶弹出一个元素)和 pushpush (将一个元素进栈). 栈 ...

  4. 信奥中的数学:斯特林数、卡特兰数

    P1287 盒子与球(球不同 盒不同 不允许有空盒) 盒子与球 - 洛谷 第二类斯特林数总结 第二类斯特林数总结 - _zjz 的博客 - 洛谷博客 P4091 [HEOI2016/TJOI2016] ...

  5. 2017百度之星程序设计大赛 - 资格赛【1001 Floyd求最小环 1002 歪解(并查集),1003 完全背包 1004 01背包 1005 打表找规律+卡特兰数】...

    度度熊保护村庄 Accepts: 13 Submissions: 488 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/3276 ...

  6. 2017百度之星资格赛:1005. 寻找母串(卡特兰数+分块打表)

    寻找母串  Accepts: 105  Submissions: 887  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 32768/32 ...

  7. 卡特兰数(c++实现)

    卡特兰数 (从第0项开始)1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 969484 ...

  8. 【算法】震惊!!!史上最详细的卡特兰数浅谈!!!

    我是标题党 卡特兰数简介 卡特兰数是组合数学中的一种著名数列,通常用如下通项式表示(为了不与组合数 C C C冲突,本文用 f f f表示卡特兰数): f ( n ) = C 2 n n n + 1 ...

  9. 数据结构 | 算法中的卡特兰数的应用

    卡特兰数又称卡塔兰数,卡特兰数是组合数学中一个常出现在各种计数问题中出现的数列. 一.简单介绍 输入一个整数n,计算h(n). 令h(0)=1,h(1)=1, Catalan数满足递推式:h(n)= ...

最新文章

  1. Javascript单线程实现
  2. 【图论】【二叉树】以先序字符串方式建立二叉树
  3. linux 时间 无法连接服务器地址,怎么解决linux访问不了ip地址问题?
  4. Java 必看的 Spring 知识汇总
  5. 配置jupyter notebook到conda env虚拟环境里可运行
  6. php 星号邮箱,PHP以星号隐藏用户名手机号码和邮箱实例
  7. nginx中配置pathinfo模式示例
  8. [Excel函数]--intercept函数
  9. linux编辑lnk文件,如何打开和编辑Windows .lnk快捷方式文件? | MOS86
  10. python二元一次方程组用鸡兔同笼的思路来写编程_python二元一次方程组用鸡兔同笼的思路来写编程_《应用二元一次方程组——鸡兔同笼》......
  11. 哪个牌子的运动耳机比较好、运动蓝牙耳机排行榜
  12. 由浅入深理解区块链技术
  13. 使用POI 导出word模板文件
  14. Godaddy 添加子域名
  15. 使用命令行将文件上传到阿里云OSS
  16. 计算机图形学和数据科学实验,计算机图形学作业-图像处理实验室——中国科学技.PDF...
  17. python保留n位小数,逢尾进一
  18. FPGA实现AD采集
  19. 千亿资产路劲掉队 单伟豹无心恋战地产圈?
  20. 学习太极创客 — MQTT 第二章(三)保留消息

热门文章

  1. 有图有真相!这世界上,竟有人跟你长得一模一样!
  2. 在家做什么能让隔壁报警?| 今日最佳
  3. K-Means算法的10个有趣用例
  4. Java学习笔记之 IO包 字符流
  5. 查询子串_SQL视图、子查询和常见函数的应用
  6. sql 触发器_一键生成某个sql的html--记录执行计划、统计信息、触发器等
  7. PHP做闹钟APP,8款超好用的闹钟APP,专治各种赖床
  8. oracle如何往dg加盘_oracle 在物理机上添加磁盘操作
  9. mysql双机互备linux成功的_配置MySQL双机热备 - Linux服务器MySQL双机热备份试验_数据库技术_Linux公社-Linux系统门户网站...
  10. 中科大计算机是一流学科吗,安徽2017双一流学科排行榜:中国科技大学第一