一块药看成括号配对就行了。很明显的直接求卡特兰数。
今晚看了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]);
}
}
}