〖NOIP2003P〗栈
来源:互联网 发布:windows10 node sass 编辑:程序博客网 时间:2024/06/06 12:58
〖NOIP2003P〗栈
- 查看
- 提交
- 统计
- 提问
- 总时间限制:
- 5000ms
- 单个测试点时间限制:
- 1000ms
- 内存限制:
- 131072kB
- 描述
栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表。
栈有两种最重要的操作,即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)
- 输出
- 输出文件只有一行,即可能输出序列的总数目
- 样例输入
3
- 样例输出
5
- 来源
- NOIP原题
- 计算卡特兰数
#include<iostream>#include<cmath>#include<cstring>#include<algorithm>#include<iomanip>#include<queue>#include<stack>#include<vector>#include<set>#include<map>using namespace std;int f(int n){double s=1;for(double i=n+1;i<=(n<<1);i=i+1){s=s*i/(i-n);}s=s/(n+1);return ceil(s);}int main(){int n;cin>>n;cout<<f(n)<<endl;return 0;}
阅读全文
0 0
- 〖NOIP2003P〗栈
- 〖〖〖〖〖〖〖〖〖〖〖〖〖〖〖〖〖〖留言版〗〗〗〗〗〗〗〗〗〗〗
- 〖零分作文〗
- 〖ExtJS〗之对话框
- 〖SCOI2014〗酱油记
- Openjudge-〖NOIP2006P〗数列
- 〖NOIP2006T〗能量项链
- 〖NOIP2004P〗FBI树
- 【迈塘坡】- 〖金〗元好问
- 〖Thinking in JAVA〗 读书笔记--[序]
- 〖转帖〗不同年龄男女的需求
- 〖对IE6单独兼容〗
- 〖 一个人.一座城..一生羁绊... 〗
- 〖Symbian OS内存管理介绍〗
- 〖数学算法〗逆矩阵算法
- 〖数学算法〗素性测试
- 【Android基础入门〖0〗】AndroidStudio
- 【Android基础入门〖11〗】Fragment
- PAT乙级(c++)1001. 害死人不偿命的(3n+1)猜想 (15)
- Slim研读笔记七乱入篇之Monolog(中)
- 〖NOIP2004P〗FBI树
- RabbitMQ简单例子
- myeclipse 如何显示序号
- 〖NOIP2003P〗栈
- Can't connect to local MySQL server through socket '/tmp/mysql.sock'
- 12.springboot使用redis的订阅功能实现消息队列
- 新建maven一直加载缓存 C:\Users\Administratol\AppData\Local\Temp\..
- 设计模式之禅PK之行为类1
- 51Nod-1050-循环数组最大子段和
- 求某个数组里连续子数组最大和的几个算法
- unity 4.x 全屏
- NOIP2008-03-传纸条