csu 1320 Scoop water (数论)

题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1320

 

 

 

卡特兰数的应用

令h(0)=1,h(1)=1,catalan数满足递推式

h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2)

 

 

#include<cstdio>

#include<cstring>

#include<iostream>

#define ll long long

#define mod 1000000007

using namespace std;

ll a[10000+10];

int main()

{

    int n;

    int i,j;

    a[0]=1;

    for(i=1;i<=10000;i++)

    {

       for(j=0;j<i;j++)

       {

           a[i]=(a[j]*a[i-1-j]%mod+a[i])%mod;

       }

    }

    while(cin>>n)

    {

        cout<<a[n]<<endl;

    }

    return 0;

}

 

你可能感兴趣的:(water)