问题链接:vijos P1122 出栈序列统计。

出栈序列统计

总时间限制:
100ms
内存限制:
64kB
描述
栈是常用的一种数据结构,有n个元素在栈顶端一侧等待进栈,栈顶端另一侧是出栈序列。你已经知道栈的操作有两种:push和pop,前者是将一个元素进栈,后者是将栈顶元素弹出。现在要使用这两种操作,由一个操作序列可以得到一系列的输出序列。请你编程求出对于给定的n,计算并输出由操作数序列1,2,…,n,经过一系列操作可能得到的输出序列总数。
输入
就一个数n(1≤n≤15)。
输出
一个数,即可能输出序列的总数目。
样例输入
3
样例输出
5
提示
先了解栈的两种基本操作,进栈push就是将元素放入栈顶,栈顶指针上移一位,等待进栈队列也上移一位,出栈pop是将栈顶元素弹出,同时栈顶指针下移一位。
  用一个过程采模拟进出栈的过程,可以通过循环加递归来实现回溯:重复这样的过程,如果可以进栈则进一个元素,如果可以出栈则出一个元素。就这样一个一个地试探下去,当出栈元素个数达到n时就计数一次(这也是递归调用结束的条件)。

NOIP2003普及组

问题链接:Bailian4077 vijos P1122 出栈序列统计

问题简述:(略)

问题分析:这个问题卡特兰数计算问题。

卡特兰数计算公式是:

程序说明:(略)

题记:(略)

参考链接:(略)

AC的C语言程序如下:

/* Bailian4077 vijos P1122 出栈序列统计 */#include <stdio.h>int main(void)
{int n, ans, i;scanf("%d", &n);ans = 1;for(i=1; i<=n; i++)ans = 2 * (2 * (i - 1) + 1) * ans / (i + 1);printf("%d\n", ans);return 0;
}

Bailian4077 出栈序列统计【卡特兰数】(vijos P1122)相关推荐

  1. 出栈顺序 与 卡特兰数(Catalan)的关系

    一,问题描述 给定一个以字符串形式表示的入栈序列,请求出一共有多少种可能的出栈顺序?如何输出所有可能的出栈序列? 比如入栈序列为:1 2 3  ,则出栈序列一共有五种,分别如下:1 2 3.1 3 2 ...

  2. 出栈序列统计—中学高级本

    关于栈的应用拓展 栈是常用的一种数据结构,有n令元素在栈顶端一侧等待进栈,栈顶端另一侧是出栈序列.你已经知道栈的操作有两·种:push和pop,前者是将一个元素进栈,后者是将栈顶元素弹出.现在要使用这 ...

  3. 卡特兰数问题——一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列?

    一个栈(无穷大)的进栈序列为1,2,3,-,n,有多少个不同的出栈序列? 常规分析 首先,我们设f(n)=序列个数为n的出栈序列种数.(我们假定,最后出栈的元素为k,显然,k取不同值时的情况是相互独立 ...

  4. 栈 - 关于出栈序列,判断合法的出栈序列

    文章目录 1 引例 2 做题方法 3 原因 3.1 选项D(4 3 1 2)的模拟 1 引例 (例)设栈的入栈序列是 1 2 3 4,则下列不可能是其出栈序列的是( ). A. 1 2 4 3 B. ...

  5. 序列元素IT面试题——判断合法出栈序列

    本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~ 在技巧笔试口试上,我们常常会碰到这样一类题型,如给你一个入栈序列,然后再让你判断几个序列是否有可能为它的出栈序列,如: 入栈序 ...

  6. 详解+G - 数据结构实验之栈与队列七:出栈序列判定

    理解: 出入栈规律之一,如果前面有一个比较大的数,后面有连续的递增顺序,递增顺序>=2个小于前面比较大的数,那么此出栈顺序不可能实现.比如4,1,2,3,5. 思路:输入一个数,然后不断按照顺序 ...

  7. 给定入栈序列,判断一个串是否为出栈序列

    剑指offer22:给定入栈序列,判断一个串是否为出栈序列 public static boolean isOutStackSequence(int[] Spush, int[] Spop) {if ...

  8. PAT甲级1051 Pop Sequence:[C++题解]模拟栈、判断序列是否是合法的出栈序列

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 题意:将1~N压栈,判断给定序列是否是合法的出栈序列. 对于序列1~N中的每个值i,先将其压入栈.然后对于它就有两种处理方法:要么压 ...

  9. 数据结构实验之栈与队列七:出栈序列判定

    Description 给一个初始的入栈序列,其次序即为元素的入栈次序,栈顶元素可以随时出栈,每个元素只能入栈依次.输入一个入栈序列,后面依次输入多个序列,请判断这些序列是否为所给入栈序列合法的出栈序 ...

最新文章

  1. 用Apache Ignite实现可扩展的数据网格
  2. angular5 httpclient的示例实战
  3. 2020年 第11届 蓝桥杯 Java C组 省赛真题详解及小结【第1场省赛 2020.7.5】
  4. HDU - 6992 Lawn of the Dead 线段树 + 思维
  5. java 线程 交给spring_浅谈Java中spring 线程异步执行
  6. Emscripten 单词_极光单词独创多种学习方法助您高效背单词
  7. .NET环境下水晶报表使用总
  8. 百度之星作为座位调整java_百度之星2006年初赛 座位调整
  9. .vimrc示例文件
  10. 计算机网络rip工作原理,12. 小型网络 RIP 协议工作原理
  11. 不能创建对象qmdispatch_关于系统弹出错误:429 , ActiveX 部件不能创建对象 的解决方法...
  12. Arduino相关语法和函数
  13. excel图表上x轴y轴怎么设置的教程介绍
  14. 已解决The method is not allowed for the requested URL.
  15. 【PHP】PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数)
  16. 爬虫 使用python+requests模块爬取12306网站的车次信息
  17. 《keep studying》————《持续学习》英译汉【istrangeboy精品英文励志短文系列】
  18. 无乐不作android手机版,酷狗音乐9.4.4版本
  19. USNews大学排名遭美国计算机研究学会怒怼,指排名荒谬要求撤回
  20. JAVA毕业设计Web网上购书后台管理系统计算机源码+lw文档+系统+调试部署+数据库

热门文章

  1. 关于用C#编写ActiveX控件1
  2. linux c 数字变字符串,Linux C 知识 char型数字转换为int型 int型 转换为Char
  3. Java定时任务中间表,mysql 通过定时任务更新中间表
  4. postbody传参_java 测试post请求 在body里面传递参数怎么设置,怎么接收
  5. school_vue操作记录
  6. yum提示Another app is currently holding the yum lock; waiting for it to exit...处理办法
  7. mysql当执行delete语句时备份_mysql中,执行delete语句时出现Lock wait timeout exceeded问题...
  8. oracle sequence 应用,oracle应用之使用sequence批量写数据
  9. socket()编程简介
  10. OpenCV案例(三): 玉米颗粒计数