洛谷——P1044 栈
P1044 栈——卡特兰数
题目背景
栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表。
栈有两种最重要的操作,即pop(从栈顶弹出一个元素)和push(将一个元素进栈)。
栈的重要性不言自明,任何一门数据结构的课程都会介绍栈。宁宁同学在复习栈的基本概念时,想到了一个书上没有讲过的问题,而他自己无法给出答案,所以需要你的帮忙。
题目描述
宁宁考虑的是这样一个问题:一个操作数序列,从1,2,一直到n(图示为1到3的情况),栈A的深度大于n。
现在可以进行两种操作,
1.将一个数,从操作数序列的头端移到栈的头端(对应数据结构栈的push操作)
- 将一个数,从栈的头端移到输出序列的尾端(对应数据结构栈的pop操作)
使用这两种操作,由一个操作数序列就可以得到一系列的输出序列,下图所示为由1 2 3生成序列2 3 1的过程。
(原始状态如上图所示)
你的程序将对给定的n,计算并输出由操作数序列1,2,…,n经过操作可能得到的输出序列的总数。
输入输出格式
输入格式:
输入文件只含一个整数n(1≤n≤18)
输出格式:
输出文件只有一行,即可能输出序列的总数目
输入输出样例
3
5
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #define N 5000 using namespace std; int n,m,ans,h[N]; int read() {int x=0,f=1; char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=-1; ch=getchar();}while(ch<='9'&&ch>='0'){x=x*10+ch-'0'; ch=getchar();}return x*f; } int main() {n=read();h[0]=1,h[1]=1;for(int i=2;i<=n;i++)for(int j=1;j<=i;j++)h[i]=h[i-j]*h[j-1]+h[i];ans=h[n];printf("%d",ans);return 0; }
转载于:https://www.cnblogs.com/z360/p/7207358.html
洛谷——P1044 栈相关推荐
- 洛谷 P1044 栈 [卡特兰数]
题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两种最重要的操作,即 poppop (从栈顶弹出一个元素)和 pushpush (将一个元素进栈). 栈 ...
- 信息学奥赛一本通 1924:【03NOIP普及组】栈 | 洛谷 P1044 [NOIP2003 普及组] 栈
[题目链接] ybt 1924:[03NOIP普及组]栈 洛谷 P1044 [NOIP2003 普及组] 栈 [题目考点] 递推.递归 栈 [解题思路]:一维递推 设数组a,a[i]表示i个数组成的数 ...
- [Catalan]求解随机出栈可能数(洛谷P1044题题解,Java语言描述)
题目要求 P1044题目链接 分析 题意就是:N个数依次进栈,可随机出栈,算一下可能的出栈序列数. 其实这个就是Catalan啊,如果数据结构与算法有一定的刷题积累的学生应该经常做这样的About栈的 ...
- 表达式括号匹配_洛谷1739_栈
题目背景 你猜 题目描述 假设一个表达式有英文字母(小写).运算符(+,-,*,/)和左右小(圆)括号构成,以"@"作为表达式的结束符.请编写一个程序检查表达式中的左右圆括号是否匹 ...
- [洛古]P1044 栈
题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两种最重要的操作,即 pop(从栈顶弹出一个元素)和 push(将一个元素进栈). 栈的重要性不言自明, ...
- 栈——验证栈序列(洛谷 P4387)
题目选自洛谷P4387 是一道栈的题,能够帮助理解栈的更深层次. 题目大意就是判断序列是否可能是对应序列的出栈序列. 如何判断是不是合理的出栈序列呢? 对于序列a 我们依次和序列b来比较,如果不相同, ...
- 栈——括号匹配(洛谷 Uva673)
题目选自洛谷Uva673 括号匹配是和栈有关的经典算法问题 每次入栈的时候判断栈的顶部是不是这个符号的另一半,如果是就pop并且这个符号也不入栈,如果不是就入栈.最后判断栈是否为空,如果为空,说明正确 ...
- 洛谷 P2186 小Z的栈函数
洛谷 P2186 小Z的栈函数 题目 题目描述 小Z最近发现了一个神奇的机器,这个机器的所有操作都是通过维护一个栈来完成的,它支持如下11个操作: NUM X:栈顶放入X. POP:抛弃栈顶元素. I ...
- 二分图——洛谷P1155 双栈排序
https://daniu.luogu.org/problem/show?pid=1155 二分图染色+模拟 1.首先考虑一个简单情况--单栈排序,显然有这样的一个事实: a[i]和a[j] 不能压入 ...
最新文章
- 【Spring】面向切面编程AOP
- matlab中中图像PSNR和SSIM的计算
- xStream转换XML、JSON
- js修改style中某个属性_JS 和 CSS 交互的 5 种方法
- 【Dynamics AX 6】axmodel新特性
- JS动态添加、删除classl类
- mysql安装需要注意什么意思_mysql 安装过程及注意事项
- 我的世界进入离开服务器消息,我的世界暂时离开状态修改 人性化设定AFK
- Flutter图像绘制原理深入分析
- Linux netstat命令详解和使用例子(显示各种网络相关信息)
- C++ Primer Plus学习(九)——内存模型和名称空间
- java编译前端_compiler Java实现的编译器前端(一直到中间代码生成)其中使用了JFLEX及CUP做Lex program /解释器 238万源代码下载- www.pudn.com...
- ModuleNotFoundError: No module named 'cv2' (安装cv2)
- 解决java:找不到符号办法
- 数据清洗之 数据整理
- java dismiss_窗口泄漏甚至在dialog.dismiss()
- 什么是Armbian
- 8.0服务器维护时间,魔兽世界8.0开服第一天遇紧急维护?网友:叫逆水寒还服务器...
- 毕设 JAVA.JSP网上学习答疑系统论文
- Python 列表解析 大文件
热门文章
- #1045 - Access denied for user 'root'@'localhost' (using password: NO)
- 白鸦三次创业反思:公司遇问题 怎么走都对(转)
- 【ML】【GM】【转】图模型(graphical model, GM)的表示
- PHP 10条有用的建议
- linux --- 进程调度
- Microsoft training Kits
- Aspose.Cells设置单元格格式
- 8张图让你一步步看清 async/await 和 promise 的执行顺序
- RED HAT LINUX 9.0的安装文本模式(2)
- 第一家公立大学支持比特币支付学费