[NOIP2003]栈
2003年普及组
题目背景
栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表。 栈有两种最重要的操作,即pop(从栈顶弹出一个元素)和push(将一个元素进栈)。 栈的重要性不言自明,任何一门数据结构的课程都会介绍栈。宁宁同学在复习栈的基本概念时,想到了一个书上没有讲过的问题,而他自己无法给出答案,所以需要你的帮忙。
题目描述
  宁宁考虑的是这样一个问题:一个操作数序列,从1,2,一直到n(图示为1到3的情况),栈A的深度大于n。
  现在可以进行两种操作,
1.将一个数,从操作数序列的头端移到栈的头端(对应数据结构栈的push操作)
2. 将一个数,从栈的头端移到输出序列的尾端(对应数据结构栈的pop操作)
使用这两种操作,由一个操作数序列就可以得到一系列的输出序列,下图所示为由1 2 3生成序列2 3 1的过程。
(原始状态如上图所示)
  你的程序将对给定的n,计算并输出由操作数序列1,2,…,n经过操作可能得到的输出序列的总数。
输入输出格式
输入格式:
输入文件只含一个整数n(1≤n≤18)
输出格式:
输出文件只有一行,即可能输出序列的总数目
输入输出样例
输入样例#1:
3
输出样例#1:
5
思路
单纯的卡特兰数,然而并没有什么好说的。
var h:array[-..] of int64;
j,n,k:int64;i:longint;
begin
fillchar(h,sizeof(h),);
h[]:=;
h[]:=;
readln(n);
if (n=) or (n=) then
begin
writeln(h[n]);
halt;
end;
for i:= to n do
begin
j:=i-;
k:=;
while k<>i do
begin
h[i]:=h[i]+h[k]*h[j];
dec(j);
inc(k);
end;
end;
writeln(h[n]);
end.
[NOIP2003]栈的更多相关文章
- 卡特兰数 BZOJ3907 网格 NOIP2003 栈
		卡特兰数 卡特兰数2 卡特兰数:主要是求排列组合问题 1:括号化矩阵连乘,问多少种方案 2:走方格,不能过对角线,问多少种方案 3:凸边型,划分成三角形 4:1到n的序列进栈,有多少种出栈方案 NOI ... 
- [NOIP2003]栈 题解(卡特兰数)
		[NOIP2003]栈 Description 宁宁考虑的是这样一个问题:一个操作数序列,从1,2,一直到n(图示为1到3的情况),栈A的深度大于n. 现在可以进行两种操作: 1.将一个数,从操作数序 ... 
- NOIP 2003 栈
		洛谷 P1044 栈 洛谷传送门 JDOJ 1291: [NOIP2003]栈 T3 JDOJ传送门 题目描述 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两 ... 
- catalan卡特兰数
		卡塔兰数是组合数学中一个常在各种计数问题中出现的数列.以比利时的数学家欧仁·查理·卡塔兰(1814–1894)命名.历史上,清代数学家明安图(1692年-1763年)在其<割圜密率捷法>最 ... 
- 浅谈卡特兰数(Catalan number)的原理和相关应用
		一.卡特兰数(Catalan number) 1.定义 组合数学中一个常出现在各种计数问题中出现的数列(用c表示).以比利时的数学家欧仁·查理·卡特兰的名字来命名: 2.计算公式 (1)递推公式 c[ ... 
- NOIP 骗分技巧
		目录 第1章 绪论 第2章 从无解出发 \hookrightarrow↪ 2.1 无解情况 \hookrightarrow↪ 2.2 样例——白送的分数 第3章 “艰苦朴素永不忘” \hookrigh ... 
- Catalan数 && 【NOIP2003】出栈序列统计
		令h(1)=1, h(0)=1,catalan数满足递归式: h(n)=h(0)*h(n-1)+h(1)*h(n-2)+...+h(n-1)h(0) (n>=2) =C(2n, n)/(n+1) ... 
- 栈(NOIP2003&水题测试2017082501)
		题目链接:栈 这题不难. 我们看一下,其实可以发现是卡特兰数. 不知道卡特兰数?没事,给你简单讲一下. 卡特兰数的递推式f(n)=f(0)*f(n-1)+f(1)*f(n-2)+-+f(n-2)*f( ... 
- 通往全栈工程师的捷径 —— react
		腾讯Bugly特约作者: 左明 首先,我们来看看 React 在世界范围的热度趋势,下图是关键词“房价”和 “React” 在 Google Trends 上的搜索量对比,蓝色的是 React,红色的 ... 
随机推荐
- jquery验证手机号码、邮箱格式是否正确示例代码
			本文为大家介绍下使用jquery验证邮箱.验证手机号码,具体实现思路及代码如下,感兴趣的朋友可以学习下 复制代码代码如下: //jquery验证邮箱 function checkSubmitEmai ... 
- Linux操作命令(一)
			ls 命令 ls 命令是 linux 下最常用的命令,ls 命令就是 list 的缩写. ls 用来打印出当前目录的清单.如果 ls 指定其他目录,那么就会显示指定目录里的文件及文件夹清单. 通过 l ... 
- hdu 3746 Cyclic Nacklace  KMP循环节
			Cyclic Nacklace 题意:给一个长度为Len( 3 <= Len <= 100000 )的英文串,问你在字符串后面最少添加几个字符可以使得添加后的串为周期串? Sample I ... 
- Hbase实例
			import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.had ... 
- WinForm小小应用
			制作日历计划任务 private void BeginTask() { Thread th = new Thread(//建立线程 (() =>//使用Lambda表达式 { while (tr ... 
- CoreGraphics之CGContext绘图
			0 CGContextRef context = UIGraphicsGetCurrentContext(); 设置上下文 1 CGContextMoveToPoint 开始画线 2 CGCon ... 
- CSS随手记
			html5模板 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <t ... 
- zepto源码学习-04 event
			之前说完$(XXX),然后还有很多零零碎碎的东西需要去分析,结果一看代码,发现zepto的实现都相对简单,没有太多可分析的.直接略过了一些实现,直接研究Event模块,相比JQuery的事件系统,ze ... 
- About GAC
			http://blogs.msdn.com/b/msbuild/archive/2007/04/12/new-reference-assemblies-location.aspx http://web ... 
- ANDROID_MARS学习笔记_S01原始版_023_MP3PLAYER004_同步显示歌词
			一.流程分析 1.点击播放按钮,会根据lrc名调用LrcProcessor的process()分析歌词文件,得到时间队列和歌词队列 2.new一个hander,把时间队列和歌词队列传给自定义的线程类U ... 
