【洛谷P1754 球迷购票问题】题解
卡特兰数经典 \(\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)\);左右对称。
于是得出递推式:
\]
朴素 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 球迷购票问题】题解的更多相关文章
- 洛谷 P1754 球迷购票问题
P1754 球迷购票问题 题目背景 盛况空前的足球赛即将举行.球赛门票售票处排起了球迷购票长龙. 按售票处规定,每位购票者限购一张门票,且每张票售价为50元.在排成长龙的球迷中有N个人手持面值50元的 ...
- 洛谷——P1754 球迷购票问题
题目背景 盛况空前的足球赛即将举行.球赛门票售票处排起了球迷购票长龙. 按售票处规定,每位购票者限购一张门票,且每张票售价为50元.在排成长龙的球迷中有N个人手持面值50元的钱币,另有N个人手持面值1 ...
- 洛谷P1783 海滩防御 分析+题解代码
洛谷P1783 海滩防御 分析+题解代码 题目描述: WLP同学最近迷上了一款网络联机对战游戏(终于知道为毛JOHNKRAM每天刷洛谷效率那么低了),但是他却为了这个游戏很苦恼,因为他在海边的造船厂和 ...
- 洛谷P4047 [JSOI2010]部落划分题解
洛谷P4047 [JSOI2010]部落划分题解 题目描述 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落 ...
- 洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈)
洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1311990 原题地址:洛谷P1155 双栈排序 ...
- 【洛谷】P1754 球迷购票问题(基础dp)
题目背景 盛况空前的足球赛即将举行.球赛门票售票处排起了球迷购票长龙. 按售票处规定,每位购票者限购一张门票,且每张票售价为50元.在排成长龙的球迷中有N个人手持面值50元的钱币,另有N个人手持面值1 ...
- 洛谷10月月赛II题解
[咻咻咻] (https://www.luogu.org/contestnew/show/11616) 令人窒息的洛谷月赛,即将参加NOIp的我竟然只会一道题(也可以说一道也不会),最终145的我只能 ...
- [洛谷P1823]音乐会的等待 题解(单调栈)
[洛谷P1823]音乐会的等待 Description N个人正在排队进入一个音乐会.人们等得很无聊,于是他们开始转来转去,想在队伍里寻找自己的熟人.队列中任意两个人A和B,如果他们是相邻或他们之间没 ...
- BZOJ2527 & 洛谷3527:[Poi2011]Meteors——题解
+++++++++++++++++++++++++++++++++++++++++++ +本文作者:luyouqi233. + +欢迎访问我的博客:http://www.cnblogs.com/luy ...
随机推荐
- 改善java程序
1.用偶判断,不用奇判断.因为负数会出错. // 不使用 String str = i + "->" + (i%2 == 1? "奇数": "偶 ...
- 3.Docker常用命令
帮助启动类命令 启动docker: systemctl start docker 停止docker: systemctl stop docker 重启docker: systemctl restart ...
- 分布式下Session一致性架构举例
一.问题及方案 见这篇文章:分布式下Session一致性问题 二.分布式环境搭建: 系统环境 [root@centos7 ~]# cat /etc/redhat-release CentOS Linu ...
- 开源LIMS系统miso LIMS(适用于NGS基因测序)
开源地址 https://github.com/miso-lims/miso-lims github加速可使用:https://kfqbvpat.fast-github.tk/-----https:/ ...
- MongoDB启动报错:Unrecognized option: storage try 'mongod --help' for more information(已解决)
问题说明: 今天在使用配置文件方式启动MongoDB时,一直启动失败,报错显示:Unrecognized option: storage try 'mongod --help' for more in ...
- Flask_WTF实现表单
Flask_WTF实现表单可分为六个步骤: ①导入FlaskForm扩展包(from flask_wtf import FlaskForm) ②导入StringField,PasswordField, ...
- 单例模式与pickle模块
目录 设计模式之单例模式 pickle模块 设计模式之单例模式 设计模式是前辈们发明的经过反复验证用于解决固定问题的固定套路,在IT行业中设计模式总共有23种,可以分为三大类:创建型.结构型.行为型. ...
- MySql笔记Ⅰ
MySql part 1: 数据库概念 数据库:(DataBase, 简称DB):数据库中的数据按一定的数据模型组织.描述和储存,具有较小的冗余度.较高的数据独立性和易扩展性,并可为各种 用户共享 数 ...
- 0-1knapsack
Python 实现0-1背包问题(回溯法) 题目 解题思路 回溯法:为了避免生成那些不可能产生最佳解的问题状态,要不断地利用限界函数(bounding function)来处死那些实际上不可能产生所需 ...
- ElasticSearch7.3学习(三十)----ES7.X SQL新特性解析及使用Java api实现sql功能
一.ES7 sql新特性 1.1 数据准备 创建索引及映射 建立价格.颜色.品牌.售卖日期 四个字段 PUT /tvs PUT /tvs/_mapping { "properties&quo ...