卡特兰数 \(Catlan\)

·赘述

其实发现卡特兰数和之前不同的是,前面的是给你公式,让你去求具体的例子,然而卡特兰数这里是给你大量例子来给你证明和解释什么是卡特兰数。

·定义

对于卡特兰数来说,他只是一个数列 \(Cat\)

\[Cat_n = C^{n}_{2n} - C^{n - 1}_{2n}
\]

这里举一个例子来观察一下卡特兰数:

现在给你一个 \(( n + 1 ) \times ( n + 1 )\) 的矩阵,现在从底点 \(( 0 , 0 )\) 出发,可以向上或向右走一格,并且到达的点的纵坐标不大于横坐标,问最后到达 \(( n , n )\) 的走法种数。

可以发现对于每一个走到的点,其一定不会越过直线 \(y = x + 1\)

我们将终点关于直线对称得到 \(( n - 1 , n + 1 )\)

对于每一个从原点出发的点,到达新终点的话,一定会经过这条直线。那么将路径与直线的第一个交点之后的关于直线对称回来,得到了一条不符合题意,且终点不变的直线。

我们能发现,对于每一条不符合题意的路径(必须向右和向上,不符合指的是纵坐标不大于横坐标不成立)都能对称出如上的路径。

所以:不考虑纵坐标不大于横坐标的总方案数为:

\[C^n_{2n}
\]

在 \(2n\) 次移动里有 \(n\) 次向上。

不符合纵坐标不大于横坐标的方案数为:

\[C^{n - 1}_{2n}
\]

在 \(2n\) 次移动里 \(n - 1\) 次向右。

所以答案为:

\[C^{n}_{2n} - C^{ n - 1 }_{2n}
\]

· \(Catlan\) 数的一些变形

这里指的是式子。

首先可以由已知式推出的:

\[Cat_n = \frac{C^{n}_{2n}}{n + 1}
\]
\[Cat_n = \frac{4n - 2}{n + 1} \times Cat_{ n - 1 }
\]

然后后面有可以由例子证明的:

\[Cat_n = \sum^{n - 1}_{i = 0}Cat_{ n - 1 - i } \times Cat_i
\]

\(\dots\) timida , 放不出来图不好解释啊。

考虑到点 \(( i , i )\) 时 ,再往上的 \(( i + j , i + j )\) 都会被 \(( i , i )\) 开始跑时跑到。所以会有重。为了去重,到 \(( i , i )\) 再往后我们就一直往右跳,再一直往左跳。

( ... 不明白不要看了 )

·卡特兰数的一些题型变形

·01串

给定 \(n\) 个 \(0\) 和 \(n\) 个 \(1\) ,排成长度为 \(2n\) 的 \(01\) 串,使得对于任意一个前缀中 \(0\) 的个数 \(\ge 1\) 的个数 ,求排法数。

其实将这个变个型就变成上面的题。( \(0\) 为向右走 , \(1\) 为向上走 )

·括号匹配

\(n\) 个 ( 和 \(n\) 个 ) , 求能够成功匹配的方案数 。 \(eg.()()(())()\)

·出入栈

给定 \(n\) 个元素,按照一定顺序入栈,求其出栈的方案数。

将入栈的补全时,就成为和括号一种的东西了。

结尾撒花 \(\color{pink}{✿✿ヽ(°▽°)ノ✿}\)

Catlan--卡特兰数--组合数学的更多相关文章

  1. uva 1478 - Delta Wave(递推+大数+卡特兰数+组合数学)

    option=com_onlinejudge&Itemid=8&category=471&page=show_problem&problem=4224" st ...

  2. Train Problem II(卡特兰数 组合数学)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1023 Train Problem II Time Limit: 2000/1000 MS (Java/ ...

  3. hdu5673 Robot 卡特兰数+组合数学+线性筛逆元

    Robot Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Subm ...

  4. CodeForces - 896D :Nephren Runs a Cinema(卡特兰数&组合数学---比较综合的一道题)

    Lakhesh loves to make movies, so Nephren helps her run a cinema. We may call it No. 68 Cinema. Howev ...

  5. BZOJ1856:[SCOI2010]字符串(卡特兰数,组合数学)

    Description lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还要求在组成的字符串中,在任意的前k个字符中,1的个数不能少于0的个数.现在lxhgw ...

  6. CodeForces - 1204E Natasha, Sasha and the Prefix Sums (组合数学,卡特兰数扩展)

    题意:求n个1,m个-1组成的所有序列中,最大前缀之和. 首先引出这样一个问题:使用n个左括号和m个右括号,组成的合法的括号匹配(每个右括号都有对应的左括号和它匹配)的数目是多少? 1.当n=m时,显 ...

  7. 组合数学的卡特兰数 TOJ 3551: Game of Connections

    这个就是卡特兰数的经典问题 直接用这个公式就好了,但是这个题涉及大数的处理h(n)=h(n-1)*(4*n-2)/(n+1) 其实见过好几次大数的处理了,有一次他存的恰好不多于30位,直接分成两部分l ...

  8. [luogu1485 HNOI2009] 有趣的数列 (组合数学 卡特兰数)

    传送门 Solution 卡特兰数 排队问题的简单变化 答案为\(C_{2n}^n \pmod p\) 由于没有逆元,只好用分解质因数,易证可以整除 Code //By Menteur_Hxy #in ...

  9. 卡特兰数(Catalan)

    卡特兰数又称卡塔兰数,英文名Catalan number,是组合数学中一个常出现在各种计数问题中出现的数列.由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名,其前几项为 : 1, 2, ...

  10. 卡特兰数(Catalan Number) 算法、数论 组合~

    Catalan number,卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列.以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名. 卡特兰数的前几个数 前20项为( ...

随机推荐

  1. android 8.1 安全机制 — SEAndroid & SELinux

    android 8.1 安全机制 - SEAndroid & SELinux 原文链接:https://blog.csdn.net/qq_19923217/article/details/81 ...

  2. [golang]在Gin框架中使用JWT鉴权

    什么是JWT JWT,全称 JSON Web Token,是一种开放标准(RFC 7519),用于安全地在双方之间传递信息.尤其适用于身份验证和授权场景.JWT 的设计允许信息在各方之间安全地. co ...

  3. Go 如何对多个网络命令空间中的端口进行监听

    Go 如何对多个网络命令空间中的端口进行监听 需求为 对多个命名空间内的端口进行监听和代理. 刚开始对 netns 的理解不够深刻,以为必须存在一个新的线程然后调用 setns(2) 切换过去,如果有 ...

  4. python跟踪脚本运行过程(类似bash shell -x)

    #详细追踪 python -m trace --trace pyscript.py #显示调用了哪些函数 python -m trace --trackcalls pyscript.py

  5. MSSQL慢查询查询与统计

    查询MSSQL慢查询: SELECT TOP 20 TEXT AS 'SQL Statement',last_execution_time AS 'Last Execution Time' ,(tot ...

  6. 常回家看看之off_by_null(堆篇)

    上次介绍了堆里面的off_by_one,那么这个off_by_null和它有神马区别呢,哎,别看名字挺像,它俩无论是在栈里面还是堆里面都有很大区别的. off_by_one,这个我们知道可以通过溢出控 ...

  7. 微信小程序广告自动访问:让广告收益轻松翻倍的利器

    微信小程序流量主挂机刷广告脚本/机器人/助手 在当下这个数字化飞速发展的时代,微信小程序已经成为商家推广和吸引流量的重要平台.然而,对于很多小程序流量主来说,如何最大化地利用广告资源.提升广告收益,却 ...

  8. Java 面向对象编程之继承的super关键词

    java 继承里面的super关键词 super关键词 一个引用变量,用于引用父类对象 父类和子类都具有相同的命名属性,要调用父类中的属性时使用 super也是父类的构造函数,格式super(参数) ...

  9. Navicat for mysql 无法连接到虚拟机的linux系统下的mysql

    最近在linux Centos7版本的虚拟机上安装了一个MySql数据库,发现本地可以正常ping通虚拟机,但Navicat则无法正常连接到虚拟机里的MySql数据库,经过一番琢磨,发现解决这个问题的 ...

  10. 透视开源生态,OSGraph——GitHub全域数据图谱的智能洞察工具

    "透视开源生态,OSGraph--GitHub全域数据图谱的智能洞察工具 OSGraph (Open Source Graph) 是一个开源图谱关系洞察工具,基于GitHub开源数据全域图谱 ...