您的位置:首页 > 其它

hdu 1023(大数+卡特兰数)

2016-03-31 16:00 363 查看
题目:和那个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
);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  母函数 卡特兰数