zoukankan      html  css  js  c++  java
  • 51Nod1120 机器人走方格 V3

    题目看这里

    一个数学题,答案就是卡特兰数*2

    求卡特兰数要用到组合数求法f[n]=C(2n-2,n-1)/n

    由于模数较小,可以Lucas定理直接做,但是这样是有问题的因为n不一定和模数互质,但是还是A了,数据比较水

    #pragma GCC opitmize("O3")
    #pragma G++ opitmize("O3")
    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    #define LL long long
    #define M 10007 
    using namespace std;
    LL js[M],inv[M]; int n;
    inline LL pow(LL x,LL k,LL s=1){
        for(;k;x=x*x%M,k>>=1) k&1?s=s*x%M:0;
        return s;
    }
    inline LL C(int n,int m){ return js[n]*inv[m]%M*inv[n-m]%M; }
    inline LL Lucas(int n,int m){
        return m?C(n%M,m%M)*Lucas(n/M,m/M):1;
    }
    int main(){
        scanf("%d",&n); 
        for(int i=*js=1;i<M;++i) js[i]=js[i-1]*i%M;
        inv[M-1]=pow(js[M-1],M-2);
        for(int i=M-1;i;--i) inv[i-1]=inv[i]*i%M;
        printf("%lld
    ",Lucas(n-1<<1,n-1)*pow(n,M-2)%M*2%M);
    }

  • 相关阅读:
    3.30 DOM操作
    3.29 js例题
    3.28 函数
    3.27 数组例题
    Web 条件查询、分页查
    web页面增、删、改
    JDBC事务、下拉框
    JSTL、断点、JavaEE、DBUTils连接池
    jsp、el表达式
    Session技术 、jsp页面
  • 原文地址:https://www.cnblogs.com/Extended-Ash/p/9477096.html
Copyright © 2011-2022 走看看