卡特兰数经典 \(\texttt{AB}\) 分拆问题。

分析:

题意相当于排列 \(n\) 个 \(\texttt A\) 和 \(n\) 个 \(\texttt B\),使得相邻 \(\texttt{AB}\)(有序!)消掉,然后左右元素并到一起再消,最后消完的序列个数。

设 \(\texttt{AB}\) 为一个组“1”,\(\texttt{AB}\) 自嵌套一次为一个组“2”(即 \(\texttt{AABB}\)),以此类推。

后面大多数数字指组“数字”

题意即转换为一个数 \(n\),求 \(n\) 分解成若干个正整数之和的方案数。

神犇到这一步就可以切掉了吧。

我们这里考虑隔板法:

两个 \(1\) 当然可以合并 \(2\)(\(=1+1\)),\(a\) 和 \(b\) 当然可以合并 \(a+b\),问题转换为有 \(n\) 个 \(1\) 有多少种合并方案。

设 \(n\) 个数的方案数为 \(f(n)\)。

考虑将 \(f(n)\) 分解为 \(f(x_0+y_0)\)。

使用隔板:

  • 当隔板在最左侧时,\(x_0=0\),\(f(0)=1\);\(y_0=n\),因为要求合并,所以有 \(n-1\) 种,由乘法原理知,此步答案为 \(f(0)f(n-1)\)。
  • 隔板向右移动一格,\(x_0=1\),也就是 \(f(1)\);\(y_0=n-1\),同理是 \(n-2\) 种,由乘法原理知,此步答案为 \(f(1)f(n-2)\)。
  • \(\dots\)
  • 归纳一下,第 \(i\) 步为 \(f(i)f(n-i-1)\)。
  • 最后一步显然是 \(f(n-1)f(0)\);左右对称。

于是得出递推式:

\[f(n)=f(0)f(n-1)+f(1)f(n-2)+f(2)f(n-3)+\dots+f(i)f(n-i-1)+\dots+f(n-1)f(0)
\]

朴素 dp 即可:

#include<iostream>
using namespace std;
const int N=25;
typedef long long ll;
ll n,dp[N];
int main()
{
cin>>n;
dp[0]=1;
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
dp[i]+=dp[j-1]*dp[i-j];
cout<<dp[n];
return 0;
}

但是在深入一步,会发现 \(f(n)=f(0)f(n-1)+f(1)f(n-2)+f(2)f(n-3)+\dots+f(i)f(n-i-1)+\dots+f(n-1)f(0)\) 的这个 \(f(n)\) 正好就是卡特兰数 \(C_n\),这个公式正好是一个卡特兰数的递推式。

【洛谷P1754 球迷购票问题】题解的更多相关文章

  1. 洛谷 P1754 球迷购票问题

    P1754 球迷购票问题 题目背景 盛况空前的足球赛即将举行.球赛门票售票处排起了球迷购票长龙. 按售票处规定,每位购票者限购一张门票,且每张票售价为50元.在排成长龙的球迷中有N个人手持面值50元的 ...

  2. 洛谷——P1754 球迷购票问题

    题目背景 盛况空前的足球赛即将举行.球赛门票售票处排起了球迷购票长龙. 按售票处规定,每位购票者限购一张门票,且每张票售价为50元.在排成长龙的球迷中有N个人手持面值50元的钱币,另有N个人手持面值1 ...

  3. 洛谷P1783 海滩防御 分析+题解代码

    洛谷P1783 海滩防御 分析+题解代码 题目描述: WLP同学最近迷上了一款网络联机对战游戏(终于知道为毛JOHNKRAM每天刷洛谷效率那么低了),但是他却为了这个游戏很苦恼,因为他在海边的造船厂和 ...

  4. 洛谷P4047 [JSOI2010]部落划分题解

    洛谷P4047 [JSOI2010]部落划分题解 题目描述 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落 ...

  5. 洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈)

    洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1311990 原题地址:洛谷P1155 双栈排序 ...

  6. 【洛谷】P1754 球迷购票问题(基础dp)

    题目背景 盛况空前的足球赛即将举行.球赛门票售票处排起了球迷购票长龙. 按售票处规定,每位购票者限购一张门票,且每张票售价为50元.在排成长龙的球迷中有N个人手持面值50元的钱币,另有N个人手持面值1 ...

  7. 洛谷10月月赛II题解

    [咻咻咻] (https://www.luogu.org/contestnew/show/11616) 令人窒息的洛谷月赛,即将参加NOIp的我竟然只会一道题(也可以说一道也不会),最终145的我只能 ...

  8. [洛谷P1823]音乐会的等待 题解(单调栈)

    [洛谷P1823]音乐会的等待 Description N个人正在排队进入一个音乐会.人们等得很无聊,于是他们开始转来转去,想在队伍里寻找自己的熟人.队列中任意两个人A和B,如果他们是相邻或他们之间没 ...

  9. BZOJ2527 & 洛谷3527:[Poi2011]Meteors——题解

    +++++++++++++++++++++++++++++++++++++++++++ +本文作者:luyouqi233. + +欢迎访问我的博客:http://www.cnblogs.com/luy ...

随机推荐

  1. sklearn机器学习实战-KNN

    KNN分类 KNN是惰性学习模型,也被称为基于实例的学习模型 简单线性回归是勤奋学习模型,训练阶段耗费计算资源,但是预测阶段代价不高 首先工作是把label的内容进行二值化(如果多分类任务,则考虑On ...

  2. MyBatisPlus详解

    1.MyBatisPlus概述 需要的基础:MyBatis.Spring.SpringMVC 为什么要学习?MyBatisPlus可以节省我们大量工作时间,所有的CRUD代码它都可以自动化完成! 简介 ...

  3. linux篇-linux下ffmpeg安装

    1最近自己搭建的公司服务端转化视频不可以,我想应该是ffmpeg的问题,头痛 准备这两个源码包 2安装,先解压 ffmpeg-4.1.4.tar.bz2 yasm-1.3.0.tar.gz 3先安装y ...

  4. 06vim --- gcc库的制作及使用

    VIM 命令模式下的操作 保存退出 快捷键 操作 ZZ 保存退出 代码格式化 快捷键 操作 gg=G 代码的格式化 光标移动(键盘上下左右键课代替) 快捷键 操作 h 光标左移 j 光标下移 k 光标 ...

  5. Change Buffer 只适用于非唯一索引页?错

    最近在网上看到一些文章里说:"change buffer 只适用于非唯一索引页."其实这个观点是错的,先来看看官方文档对 change buffer 的介绍: 文档地址:https ...

  6. SpringSecurity简单入门

    1.简介 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spr ...

  7. python基础学习8

    python基础学习8 内容概要 字典的内置方法 元组的内置方法 集合的内置方法 垃圾回收机制 内容详情 字典的内置方法 一.类型转换 res = dict(name='jason', pwd=123 ...

  8. 数据分析工具Metabase--Metabase安装(最详细的安装教程)

    Meatabase介绍 Metabase 是一款开源的BI工具.主要可以实现在线的可视化分析,单独生成分析图标,定时刷新数据集,权限管理,报告分享等一系列功能. Metabase支持多种市面上主流的数 ...

  9. CabloyJS v4.0.0支持工作流引擎及更多 🎉

    截至2020年12月21日冬至,花了近5年时间作出最小可用NodeJS开源全栈框架,这就是CabloyJS V4.0.0 5年,90个模块,30万行代码,5400次提交(Commits),开启Node ...

  10. ebook下载 | 灵雀云发布《 企业高管IT战略指南——为何选择容器与Kubernetes》

    发送关键词[高管指南]至灵雀云公众号,立即下载完整版电子书 "本书将提供企业领导者/IT高管应该了解的,所有关于容器技术和Kubernetes的基础认知和关键概念,突破技术语言屏障,全面梳理 ...