标签:数列 奇数 递增 位上 偶数 P3200 HNOI2009 卡特兰
题目描述
P3200 [HNOI2009]有趣的数列
样例输入:3 10
样例输出:5
题解
看样例猜做法
大概猜一猜 观察到答案是卡特兰数列
接下来我们看看为什么是这样。
首先化简题目
对于一个 \(2*n\) 的排列,我们要求:
奇数位置上的数递增
偶数位置上的数递增
奇偶相邻位置数递增
奇怪的tip:偶奇相邻不用递增
首先假设我们把这 \(2n\) 个数一个个填进去 填到第 \(i\) 个
如果我们要填在偶数位 那么这个数必须比当前偶数大 也必须比上一位的奇数大
也就是说 这个数如果在偶数位上 需要比前 \(i-1\) 个数字都大
得出的结论是 如果这一位是偶数位 下标为 \(i\) 时的数字至少为 \(i\)
那么在奇数位上呢?
我们发现只要比前几个奇数大就可以了
也就是说 我们当前这个数一定可以填在第一个空白的奇数位上
所以题目变成了 对于长度为 \(2n\) 的序列
对于当前数 我们要么把他放在最大的偶数位上 要么把他放在最大的奇数位上
还要求奇数位的数字个数时刻大于等于偶数位
因为如果奇数位少一个 即偶数位多一个 无论下一个数往哪填 偶数位都没法大于当前的数
所以问题转化成了卡特兰数列
标签:数列,奇数,递增,位上,偶数,P3200,HNOI2009,卡特兰 来源: https://www.cnblogs.com/lzy-blog/p/15350272.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。