ZCMU - 1934: ly的二叉树

题目链接:点击打开链接

 

题目大意:略。

 

解题思路:卡特兰数 点击打开链接 + 乘法逆元 点击打开链接

 

AC 代码

#include
#include

#define mem(a,b) memset(a,b,sizeof a);
#define INF 0x3f3f3f3f

using namespace std;

typedef long long ll;

const int mod=1000000007;

ll h[10000000];

// 快速模幂(配合:费马小定理)
ll qpow(ll a,ll b)
{
    ll ans=1; a=a%mod;
    while(b)
    {
        if(b&1) ans=ans*a%mod;
        b>>=1;
        a=a*a%mod;
    }
    return ans;
}


int main()
{
    //h(n)=h(n-1)*(4*n-2)/(n+1);
    h[0]=h[1]=1;
    for(int i=2;i<1000100;i++)
    {
        h[i]=h[i-1]*(4*i-2)%mod*qpow(i+1,mod-2)%mod;
    }
    ll n;
    while(~scanf("%lld",&n))
    {
        printf("%lld\n",h[n]);
    }

    return 0;
}

 

你可能感兴趣的:(#,ACM,#,ZCMU,#,数论,ACM,ZCMU,1934,乘法逆元,ly的二叉树,卡特兰数)