题目:和那个I有关,是问火车按一定顺序进站,出战的顺序有多少中。
分析: 典型的卡特兰数,但本题数量巨大 所以采用大数来写 java中提供了大数类,所以用了java写
卡特兰数公式:h(n)=C(2n,n)/(n-1) 递推式: h(n)=h(n-1)*(4*n-2)/(n+1);
代码如下:
import java.io.*;
import java.math.BigInteger;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
BigInteger s[]=new BigInteger[105];
s[1]=BigInteger.ONE;
for(int i=2;i<105;i++){
s[i]=s[i-1].multiply(BigInteger.valueOf((4*i-2))).divide(BigInteger.valueOf(i+1));
}
while(cin.hasNext()){
int n=cin.nextInt();
System.out.println(s[n]);
}
}
}