HDU
来源:互联网 发布:python学习手册 mobi 编辑:程序博客网 时间:2024/06/05 00:59
题目:让你输出从点(0,0)到点(N,0)一共有多少种方法,点(r,c)可以到点(r,c+1),(r+1,c+1),(r-1,c+1),但是不能走到x轴的下方。
下图是N=4的方法
34
49
思路:行数要么+1,要么+0,要么-1,因为不能到x轴的下方,所以任意时刻+1的次数都要大于等于-1的次数,所以就是卡特兰数了呀。
设总的+1的次数为i
ans+=C(n,2*i)*h(i-1)*(4*i-2)/(i+1)
代码:
import java.math.*;import java.util.*;public class Main {static BigInteger one = BigInteger.ONE;static BigInteger two =BigInteger.valueOf(2);static BigInteger zero = BigInteger.ZERO;static BigInteger ten = BigInteger.TEN;public static void main(String[] args) {Scanner cin = new Scanner(System.in);int n;while(cin.hasNext()){n=cin.nextInt();BigInteger ans=one,h=one,C=one;int y=0;for(int i=1;2*i<=n;i++){C=C.multiply(BigInteger.valueOf(n-y)).divide(BigInteger.valueOf(y+1));y++;C=C.multiply(BigInteger.valueOf(n-y)).divide(BigInteger.valueOf(y+1));y++;h=h.multiply(BigInteger.valueOf(4*i-2)).divide(BigInteger.valueOf(i+1));//System.out.println(C+" "+h);ans=ans.add(h.multiply(C));}ans=ans.mod(ten.pow(100));System.out.println(ans);}cin.close();}}
阅读全文
0 0
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- HDU
- Hdu
- hdu
- hdu-
- hdu
- hdu
- hdu
- HDU
- Java 轻量级调用 FTP 上传(安卓可用)
- LINUX下安装ORACLE 11G
- D28 Spark基础
- Mips TLB miss异常
- org.json.JSONException: Value java.net.UnknownHostException of type java.lang.String cannot be conv
- HDU
- 【javascript】您好, 您要的ECMAScript6速记套餐到了 (一)
- D29 RDD高级算子
- Java 内部类的一些总结
- 70.爬楼梯
- Mips TLB miss实现in Linux
- Linux shell 的 test 命令用法详解
- jsp后一个窗口传值给前一个窗口,子父窗口之间的传值
- Bell数