题目链接:https://cn.vjudge.net/problem/HDU-1023

题意

卡特兰数的应用之一

求一个长度为n的序列通过栈后的结果序列有几种

思路

一开始不知道什么是卡特兰数,猜测是一个递推题

注意到在序列第i个元素入栈时,前几个元素都进过栈,就是通过栈的操作

设n个元素通过栈的结果序列个数为h[n],则有:

\[h_n=h_1h_{n-1}+h_2h_{n-2}+...+h_{n-1}h_1
\]

查了以后发现这是卡特兰数的规律,有通项:

\[h_n=h_{n-1}\frac{4n-2}{n+1}
\]

考虑到又要写高精度算法,想写python,发现没有python,只能先学一下java好了...

代码

// Main.java
import java.math.BigInteger;
import java.util.Scanner; public class Main{
public static void main(String[] args){
Scanner cin=new Scanner(System.in); BigInteger[] num=new BigInteger[100+5];
num[1]=new BigInteger("1");
for (int i=2; i<=100; i++){
Integer tmp1=4*i-2, tmp2=i+1;
BigInteger a=new BigInteger(tmp1.toString());
BigInteger b=new BigInteger(tmp2.toString());
num[i]=num[i-1].multiply(a).divide(b);
}
while (cin.hasNext()){
int n=cin.nextInt();
System.out.println(num[n]);
}
}
}
Time Memory Length Lang Submitted
202ms 9892kB 632 Java 2018-02-09 19:18:25

HDU-1023 Train Problem II 卡特兰数(结合高精度乘除)的更多相关文章

  1. HDU 1023 Train Problem II (卡特兰数,经典)

    题意: 给出一个数字n,假设火车从1~n的顺序分别进站,求有多少种出站序列. 思路: 卡特兰数的经典例子.n<101,用递推式解决.需要使用到大数.n=100时大概有200位以下. #inclu ...

  2. HDOJ 1023 Train Problem II 卡特兰数

    火车进站出站的问题满足卡特兰数...卡特兰数的相关知识如下: 卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列.由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名. ...

  3. HDU 1023 Train Problem II (大数卡特兰数)

    Train Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  4. hdu 1023 Train Problem II

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1212 Train Problem II Description As we all know the ...

  5. hdu1032 Train Problem II (卡特兰数)

    题意: 给你一个数n,表示有n辆火车,编号从1到n,入站,问你有多少种出站的可能.    (题于文末) 知识点: ps:百度百科的卡特兰数讲的不错,注意看其参考的博客. 卡特兰数(Catalan):前 ...

  6. HDU 1023 Train Problem II( 大数卡特兰 )

    链接:传送门 题意:裸卡特兰数,但是必须用大数做 balabala:上交高精度模板题,增加一下熟悉度 /************************************************ ...

  7. C - Train Problem II——卡特兰数

    题目链接_HDU-1023 题目 As we all know the Train Problem I, the boss of the Ignatius Train Station want to ...

  8. HDU 1023 Train Problem II 大数打表Catalan数

    一个出栈有多少种顺序的问题.一般都知道是Catalan数了. 问题是这个Catalan数非常大,故此须要使用高精度计算. 并且打表会速度快非常多.打表公式要熟记: Catalan数公式 Cn=C(2n ...

  9. 1023 Train Problem II(卡特兰数)

    Problem Description As we all know the Train Problem I, the boss of the Ignatius Train Station want ...

随机推荐

  1. 如何将MVC AREA中的某一个页设为起始页

    public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.Ignore ...

  2. windows模式编译

    //预编译,linker链接,Windows模式#pragma comment(linker,"/subsystem:\"windows\" /entry:\" ...

  3. sublime配置python运行环境

    1.sublime下载与插件管理 1.1 下载 官网地址:https://www.sublimetext.com/3 1.2 安装Package Control管理插件 使用ctrl + ` (感叹后 ...

  4. 关于Tool接口--------hadoop接口:extends Configured implements Tool 和 ToolRunner.run

    我们在写Hadoop--map/reduce程序时,遇到使用按文件url来分析文件----------多表连接的DistributedCache方式,看不懂使用extends Configured i ...

  5. SQL Server: Windows Firewall with Advanced Security

    SQL Database Engine: TCP 1433 & UDP 1434 SQL Analysis Service: TCP 2383 (2382 if named instance) ...

  6. Android UnitTest FrameWork

    Android test suites基于Junit,可以直接使用Junit测试不使用android api的class,也可以使用android的Junit extensions测试android ...

  7. python 3.x 学习笔记7 ( 模块 (修))

    1.定义:模块:用来从逻辑上组织python代码(变量.函数.类.逻辑:实现一个功能),本质就是.py结尾的python文件包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个__init__. ...

  8. jquery定时器

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  9. CDR X6三折促销活动,可入

    继CDR X6双十二限量活动之后,CorelDRAW官方为庆祝2018新年新气象,折扣狂潮,又来一波.上次活动由于时间短,任务急,数量少,使得不少小伙伴抱憾而止,选择默默等待良机.现在,良机来了,即便 ...

  10. Virtualenv入门基础教程

    本文目录: [TOC]虚拟环境简介 VirtualEnv用于在一台机器上创建多个独立的Python虚拟运行环境,多个Python环境相互独立,互不影响,它能够: 在没有权限的情况下安装新套件    不 ...