• 战地


     


     裸的卡特兰数

    dfs暴搜

    #include<stdio.h> 
    long long k,tot,n;
    
    void dfs(int dep) 
    {
        if(dep==2*n) {
            if(!k) tot++; //恰好满足 
            return ;
        }
        if(k) {
            k--;
            dfs(dep+1);
            k++;
        }
        k++;
        dfs(dep+1);
        k--;
    }
    
    int main() 
    {
        scanf("%lld",&n);
        dfs(0);
        printf("%lld",tot);
        return 0;
    } 

    递推 

    #include<stdio.h> 
    const int P=1e9+7;
    int n;
    long long f[110][110];
    
    int main() 
    {
        scanf("%d",&n);
        for(int i=0;i<=n;++i) {
            for(int j=0;j<=i;++j) {
                if(j) f[i][j]=(f[i-1][j]+f[i][j-1])%P;
                else f[i][j]=1;
            }
        }
        printf("%lld",f[n][n]);
        return 0;
    }

    公式 

    #include<stdio.h> 
    const int P=1e9+7;
    int n;
    long long f[110][110];
    
    int main() 
    {
        scanf("%d",&n);
        for(int i=0;i<=n;++i) {
            for(int j=0;j<=i;++j) {
                if(j) f[i][j]=(f[i-1][j]+f[i][j-1])%P;
                else f[i][j]=1;
            }
        }
        printf("%lld",f[n][n]);
        return 0;
    }

    std正解+ksm

    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<iostream>
    #include<algorithm>
    using namespace std ;
    const int mod=1e9+7;
    int n,T;
    
    long long ksm(long long a,long long b){
        long long ans=1;
        while(b){
            if(b&1) ans=ans*a%mod;
            a=a*a%mod;b>>=1;
        }
        return ans;
    }
    
    long long init(){
        long long ret1=1,ret2=1;
        for(int i=2;i<=n;i++)
            ret1=1ll*ret1*(n+i)%mod,
            ret2=1ll*ret2*i%mod;
        return 1ll*ret1*ksm(ret2,mod-2)%mod;
    }
    
    int main()
    {
        scanf("%d",&T);
        while(T--){
            scanf("%d",&n);
            printf("%lld
    ",init());
        }
        return 0;
    }
    从0到1很难,但从1到100很容易
  • 相关阅读:
    在Fragment中保存WebView状态
    Code First下迁移数据库更改
    脚本解决.NET MVC按钮重复提交问题
    1.1C++入门 未完待续。。。
    0.0C语言重点问题回顾
    12F:数字变换
    12G:忍者道具
    12D:迷阵
    12C:未名冰场
    12B:要变多少次
  • 原文地址:https://www.cnblogs.com/qseer/p/9551401.html
Copyright © 2020-2023  润新知