码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 1023

时间:2014-10-07 12:19:13      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:blog   io   ar   java   for   div   c   log   r   

卡特兰数。把进栈看成是+1,出栈看成是-1,任何时候部分和都有a1+a2+....ak>=0。求这样的数列的个数。这明显是卡特兰数的一个解释嘛。在《组合数学》这本书就有这样的原本的证明。

import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;

public class Main{
	public static void main(String args[]){
		Scanner in= new Scanner(System.in);
		BigDecimal []Can=new BigDecimal[110];
		BigDecimal B,C,D;
		Can[1]=new BigDecimal(1);
		for(int i=2;i<110;i++){
			B=new BigDecimal(4*i-2);
			C=new BigDecimal(i+1);
			D=Can[i-1].multiply(B);
			Can[i]=D.divide(C);
		}
		while(in.hasNext()){
			int n=in.nextInt();
			System.out.println(Can[n]);
		}
	}
}

  

  

HDU 1023

标签:blog   io   ar   java   for   div   c   log   r   

原文地址:http://www.cnblogs.com/jie-dcai/p/4009046.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!