• hdoj1023——卡特兰数


    hdoj1023——卡特兰数

    Train Problem II

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 6418    Accepted Submission(s): 3494


    Problem Description
    As we all know the Train Problem I, the boss of the Ignatius Train Station want to know if all the trains come in strict-increasing order, how many orders that all the trains can get out of the railway.
     
    Input
    The input contains several test cases. Each test cases consists of a number N(1<=N<=100). The input is terminated by the end of file.
     
    Output
    For each test case, you should output how many ways that all the trains can get out of the railway.
     
    Sample Input
    1 2 3 10
     
    Sample Output
    1 2 5 16796
    Hint
    The result will be very large, so you may not process it by 32-bit integers.
     
    虽然是火车入栈,但和括号匹配是同一个道理,标准的卡特兰数,数比较大,学了java真是方便。。
    import java.io.*;
    import java.util.*;
    import java.math.*;
    
    public class Main {
        public static BigInteger fac(BigInteger n){
            BigInteger a=new BigInteger("1");
            BigInteger zero=new BigInteger("0");
            if(n.equals(a)||n.equals(zero)) return a;
            return n.multiply(fac(n.subtract(a)));
        }
        public static BigInteger C(BigInteger n,BigInteger k){
            return fac(n).divide(fac(k).multiply(fac(n.subtract(k))));
        }
        public static BigInteger Catlan(BigInteger n){
            BigInteger a=new BigInteger("1");
            return C(n.add(n),n).divide(n.add(a));
        }
        public static void main(String[] args){
            Scanner in=new Scanner(System.in);
            BigInteger n;
            BigInteger two=new BigInteger("2");
            while(in.hasNext()){
                n=in.nextBigInteger();
                System.out.println(Catlan(n).toString());
            }
        }
    }
    View Code
    没有AC不了的题,只有不努力的ACMER!
  • 相关阅读:
    linux命令
    使用JS实现前端缓存
    git放弃本地修改 强制更新
    java list
    Jquery获取select 控件的change事件时选中的值
    如何将Js代码封装成Jquery插件
    如何获取Iframe的页面控件的值
    简单的百度地图点击获取当前地理坐标
    使用Ajax上传图片到服务器(不刷新页面)
    在微信浏览器中如何让他自动关闭当前页面回到会话框js
  • 原文地址:https://www.cnblogs.com/--560/p/4362514.html
Copyright © 2020-2023  润新知