ZCMU - 1934: ly的二叉树

题目链接:点击打开链接

题目大意:略。

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

AC 代码

#include<bits/stdc++.h>
#include<cmath>

#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;
}

猜你喜欢

转载自blog.csdn.net/Dream_Weave/article/details/81148168