当前位置: 首页 > news >正文

【笔记】卡特兰数

卡特兰数

以下四种公式都表示卡特兰数。

\[C_n=\dbinom{2n}{n}-\dbinom{2n}{n-1} \]

\[C_n=\frac{1}{n+1}\dbinom{2n}{n} \]

\[C_n=C_{n-1}\times\frac{4n-2}{n+1} \]

\[C_n=\sum_{i=0}^{n-1}C_i\times C_{n-1-i} \]

其中,公式二可以从第 \(0\) 项开始推导。公式四计算时间复杂度为 \(O(n^2)\),其余为 \(O(n)\)

根据题目数据范围、是否取模选择合适的计算方法,其中公式一二四最为常用。

进出栈问题

给定一个序列 \(1,2,\dots n\),数字依次进栈,可自由选择时机出栈。问出栈序列有多少种可能的情况。

不妨把进栈操作视为左括号,出栈操作视为右括号,这样就得到了一个长度为 \(2n\) 的括号序列。现在要求,对于此序列任意前缀,都有左括号数量 \(\ge\) 右括号数量。

首先你需要选择 \(n\) 个括号作为左括号,总方案数 \(\dbinom{2n}{n}\)

接着考虑减去不合法情况。对于任意一个不合法的括号序列,我们找到他第一个右括号数量 \(>\) 左括号数量的前缀。如此序列:

())()(())(

第一个不合法位置是 \(3\)。我们在此位置分割序列,观察前后括号数量。

()) | ()(())(

我们设左侧有 \(k\) 个右括号,那么右侧就有 \(n-k\) 个右括号。

此时左侧有 \(k-1\) 个左括号,右侧有 \(n-(k-1)\) 个左括号。

注意到左侧的左括号数量 \(+\) 右侧的右括号数量恒为 \(n-1\),左侧的右括号数量 \(+\) 右侧的左括号数量恒为 \(n+1\)

那么我们考虑把右侧的左右括号反转,这样就形成了一个有 \(n-1\) 个左括号,\(n+1\) 个右括号的序列。

()) | )())(()

容易证明,以这种方法转换形成的序列与所有原不合法操作序列一一对应。

因此不合法的方案数为从 \(2n\) 个位置里选 \(n-1\) 个放左括号,\(\dbinom{2n}{n-1}\)

答案就是 \(\dbinom{2n}{n}-\dbinom{2n}{n-1}\),与卡特兰数公式一一致。

这个问题还可以换一些问法。

比如买票问题:票价 \(5\) 元,有 \(n\) 个游客带了 \(5\) 元,\(n\) 个旅客带了 \(10\) 元,售票员起始 \(0\) 元,问有多少种合法的购票序列。

注意到如果要给 \(10\) 元旅客找零,就必须要剩下至少 \(5\) 元,也就是有一个 \(5\) 元旅客买过票。于是问题等价。

以及:给定 \(n\)\(1\)\(n\)\(-1\),问有多少种排列方式使得任意前缀和不小于零。显然等价。

还有下面这个。

Luogu P1375 小猫

圆上有 \(2n\) 个点,点之间两两连线,问有多少种连法使得线不交叉。

首先给点顺时针编上号,按编号从小到大处理,发现不能回连,也就是必须得连当前最后一个没连的,否则会连到两个已连过点之间的点上造成交叉。

然后是被两个连接点包含的必须得有偶数个点,让他们内部配对。也即奇连偶,偶连奇。

那我们把奇数从小到大依次进栈,偶数从小到大依次视作出栈,当前出栈的奇数就与当前偶数配对连线。与连线方案一一对应。所以答案即为卡特兰数。

http://www.rkmt.cn/news/1463009.html

相关文章:

  • 2026甄选:北京冷藏运输公司的专业品质与冷链配送实力解析 - 品牌企业推荐师(官方)
  • 在普宁孩子学校体检视力不合格找哪家眼镜店|筛查不合格一定要马上配镜吗 - 品牌观察
  • 2026年6月称重模块厂家推荐榜单:高精度称重传感器与工业料罐称重模块深度解析 - 企业推荐官【官方】
  • 2026年隧道炉制造企业实力之选:上海迅美工业设备有限公司 - 品牌企业推荐师(官方)
  • 【AI报税革命指南】:2024年税务师都在用的7个智能工具整合方案,错过再等一年
  • 靠谱农机维修培训推荐 实战教学口碑享誉业内 - 湖南阳光技术
  • 基于CD4093与MCP602的简易特雷门琴制作全攻略
  • MATLAB零依赖SIFT特征提取与图像匹配全套代码包
  • 工业级Skill迭代优化方案:微软 SkillOpt;谷歌 SkillOS
  • 滴哦小精灵 v1.5.1:全能型 Windows 桌面工具箱,集美化与高效办公于一体
  • NTRIP协议开发实战:3步构建高效RTK差分数据传输系统
  • 亲测AI搜索:官网流量如何守住?
  • Claude Code 和 Codex 怎么选?我的分项推荐
  • C++多线程detach()用不好,程序崩溃怎么查?聊聊传参的那些隐藏陷阱
  • 终极指南:如何用NewGAN-Manager快速解决Football Manager头像配置难题
  • 5分钟精通哔哩下载姬:从新手到高手的完整指南
  • 三步彻底卸载Windows预装Edge浏览器:EdgeRemover专业工具完整指南
  • Ripes:可视化RISC-V处理器模拟器的五大实战应用场景
  • 3分钟实现专业虚拟背景:obs-backgroundremoval插件全攻略
  • DeepSeek-R1实测与大模型选型方法论
  • 警惕!AI面试偏见指数超标2.3倍的3类岗位模型——2024人社部算法审计通报首曝
  • 前端技术05-Selenium太慢?从手动测试到自动化:Playwright多浏览器并行测试实战,Playwright让E2E测试效率翻倍
  • AI Agent实战入门:从ChatGPT到可执行数字员工的范式跃迁
  • VASP 磁性结构可视化:一键生成 VESTA / MCIF
  • GEO源头厂商主体杭州爱搜索:如何构建AI搜索优化长效竞争力 - 品牌报告
  • 单片机答辩
  • 0.1mm微裂纹实时闭环剔除技术揭秘
  • Arduino与光耦驱动辉光管:替代74141芯片的矩阵扫描方案
  • TVA闭环优化焊接参数
  • ECS 为什么最终会走向 Archetype