HDU 4165

一块药看成括号配对就行了。很明显的直接求卡特兰数。

今晚看了HDU 3240的题,有一点思路,但无情的TLE。想不到什么好方法了,看了别人的解答,哇。。。简直是天才的做法啊。。。。留到星期六自己思考一遍再重新写。

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
import java.io.InputStreamReader;
 
 
public class Main{
        public static void main(String args[]){
	Scanner in=new Scanner(System.in);
	BigInteger ans[]=new BigInteger[35];
	ans[1]=BigInteger.valueOf(1);
	for(int i=2;i<35;i++){
		ans[i]=ans[i-1].multiply(BigInteger.valueOf(4*i-2)).divide(BigInteger.valueOf(i+1));
	}
	while(in.hasNext()){
		int x=in.nextInt();
		if(x==0)
			break;
		System.out.println(ans[x]);
	}
        }
}

  

posted @ 2014-10-08 21:12  chenjunjie1994  阅读(182)  评论(0编辑  收藏  举报