hdu 1023 - Train Problem II

題目:Train Problem II


題意:一種嚴格上升的進站序列,有多少種不同的出站方式?


思路:卡塔蘭數的模型,本題要用到大數


卡塔蘭數遞推公式:

h(0) = h(1) = 1;

h(n)=h(n-1)*(4*n-2)/(n+1);


代碼:

import java.io.*;
import java.util.*;
import java.math.*;

public class Main {

        public static void main(String[] argv) throws IOException
        {
              Scanner in = new Scanner(new InputStreamReader(System.in));
              
              BigInteger[] ans = new BigInteger[105];
              
              ans[0] = ans[1] = new BigInteger("1");
              
              BigInteger cheng,chu;
              
              for(int i = 2 ; i < 105 ; i++)
              {
            	  cheng = new BigInteger(Integer.toString(4*i-2));
            	  chu = new BigInteger(Integer.toString(i+1));
            	  
            	  ans[i] = (ans[i-1].multiply(cheng)).divide(chu);
              }
              
             
              while(in.hasNext())
              {
            	  int n = in.nextInt();
            	  
            	  System.out.println(ans[n]);
              }

        }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章