7-4 mmh学长与出栈 (20分)
题目跟卡特兰数有关
卡特兰数是一个数列,第n个卡特兰数代表,对于n个0和n个1组成的数列,存在(C(2n,n)- C(2n,n-1)+mod)%mod种方案使得该数列任意前缀中,0的数量都不小于1的数量
组合数的计算公式:
for(int i = 0; i <= n; i++)
C[i][0] = C[i][i] = 1;
for(int i = 2; i <= n; i++)
{
for(int j = 1; j <= i/2; j++)
{
C[i][j] = (C[i-1][j]+C[i-1][j-1])%mod;//杨辉三角 C(n,m) = C(n,m-1) + C(n,m);
}
}
7-4 mmh学长与出栈 (20分)
mmh学长与出栈
某天,小白询问了mmh学长一个问题,有一个数列1,2,……,n, 如果按照1,2,……,n的顺序入栈,那么有多少种不同的出栈顺序。
输入格式:
一行一个正整数n(n≤2000),表示数列1,2,……,n
输出格式:
一个整数sum,表示有多少种不同的出栈顺序, 由于该数可能较大,你只需输出其对1e9+7取模后的余数即可。
输入样例:
2
输出样例:
2
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
#define MAXN 4015
typedef long long ll;
int n;
ll C[MAXN][MAXN];
ll mod = 1000000007;
int main()
{for(int i = 0; i <= 4000; i++)C[i][0] = C[i][i] = 1;for(int i = 2; i <= 4000; i++){for(int j = 1; j <= i/2; j++){C[i][j] = (C[i-1][j] + C[i-1][j-1])%mod;C[i][i-j] = C[i][j];}}cin>>n;cout<<(C[2*n][n] - C[2*n][n-1]+mod)%mod<<endl;return 0;
}
7-4 mmh学长与出栈 (20分)相关推荐
- 实验4-1-3 找出最小值 (20 分)
实验4-1-3 找出最小值 (20 分) 本题要求编写程序,找出给定一系列整数中的最小值. 输入格式: 输入在一行中首先给出一个正整数n,之后是n个整数,其间以空格分隔. 输出格式: 在一行中按照&q ...
- PTA 栈 (20分)(全网首发)(实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1))
题目描述: 我们知道平凡的栈有几个操作: push(value) 将 value 压入栈 pop() 将栈顶元素弹出, 并返回这个弹出的元素. 现在我们想要在平凡栈的基础上实现以下几个操作: push ...
- 根据入栈顺序判断出栈顺序的合法性
这道题不管是面试还是笔试的选择题都非常爱出的一道题 题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4 ...
- 2-10 [搞定!]出栈序列的合法性 (20 分)
给定一个最大容量为 M 的堆栈,将 N 个数字按 1, 2, 3, -, N 的顺序入栈,允许按任何顺序出栈,则哪些数字序列是不可能得到的?例如给定 M=5.N=7,则我们有可能得到{ 1, 2, 3 ...
- 023 判断出栈顺序是否正确
1.题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序. 假设压入栈的所有数字均不相等.例如序列1.2.3.4.5是某栈的压栈序列,序列4.5.3.2.1是该压栈 ...
- python程序设计祁瑞华答案_【单选题】有六个元素 6 , 5 , 4 , 3 , 2 , 1 的顺序进栈,问下列哪一个不是合法的出栈序列? (2.0分)...
参考答案如下 单选的顺[单选题]在 C51 的函数中,如果该函数无返回值, ______ 可以省略. 元素[多选题]下列( )属于一般常用的封头类型. 序进下列序列[填空题]Fill in the b ...
- 面试题之判断栈的入栈和出栈序列的合法性
完整题目是这样的:给我们两个序列,第一个序列表示栈的压入顺序,然后让判断第二个序列是不是是否是该栈的弹出序列.现设第一个序列为[1,2,3,4,5],第二个序列为[3,2,5,4,1],可以看出这个出 ...
- java-模拟出栈入栈
package com.sc;class stack{int array[]=new int[20]; //定义栈的存储结构,数组后期会进行扩容int size=0;//栈中存放数据的个数/*** * ...
- C语言 · 出栈次序
标题:出栈次序 X星球特别讲究秩序,所有道路都是单行线.一个甲壳虫车队,共16辆车,按照编号先后发车, 夹在其它车流中,缓缓前行. 路边有个死胡同,只能容一辆车通过,是临时的检查站,如图[p1.png ...
- (24) 不可能的出栈顺序
一.问题描述 给定两个数组,一个进栈顺序,一个出栈顺序.判定出栈数组的出栈顺序是不是有可能的. 二.Code 1 package algorithm; 2 3 import java.util.Arr ...
最新文章
- 20145227鄢曼君《网络对抗》逆向及Bof基础
- 注册CSDN帐号的见闻续
- java checked异常有那些,java checked exceptions
- 20145319 第五周学习总结
- 计算机一级b考试教程,全国计算机等级考试一级B教程
- mac系统安装npm所遇问题
- 基于Jupyter Notebook从头学习机器学习 | 入门资料分享
- HTML Agility Pack 搭配 ScrapySharp,彻底解除Html解析的痛苦
- 快速排序(Quick Sort)附C语言代码
- linux 输入法框架xim,基于XIM协议的输入法原理与实现
- python批量剪切视频文件
- ajax 传实体对象,前端ajax或axios发送数据后端实体类接受(实例和报错原因)
- 资深黄金专家李鑫:独创7套算点理论震惊市场
- C++入门——Day5_分支语句和逻辑运算符
- GBase XDM使用场景
- 向windows服务器传输大文件时提示未知错误解决方法
- jsp页面转换成html,jsp页面修改成html页面
- species-in-pieces网站动效的JS实现
- 图书借阅java设计报告_JAVA课程设计报告图书借阅系统.pdf
- 有感“IBM将大规模裁员11万人左右,幅度高达26%”
热门文章
- 拓端tecdat|R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例
- 拓端tecdat|基于matlab的Lorenz系统仿真可视化
- python-next
- Linux中配置pacman镜像源(manjaro)
- Java游戏程序设计教程 第4章 游戏的运行机制
- golang protobuf 动态消息获取_干货|Golang拦截器的一种实现
- 如何用yolov5测试图片
- keras.preprocessing.image函数比较
- 深度学习(十八)基于R-CNN的物体检测-CVPR 2014
- python求解给定一个整数N,求N!末尾有多少个0,求N!的二进制中最低位1的位置