• Catalan数


    (有一个长度为2n的01序列,其中1,0各n个,要求对于任意的整数k∈[1,2n],数列的前k个数中,\ 1的个数不少于0的个数, 求对于任意一个n满足条件的串的个数。)
    dp方法:
    (f(i, j))表示存在i个0和j个1时满足条件的所有串的集合,存储数量属性

    (1. i = 0: f(i, j) = 0\ 2. j = 0: f(i, j) = 1\ 3. i < j: f(i, j) = 0\ 4. i = j: f(i, j) = f(i, j - 1)\ 5. i > j: f(i, j) = f(i - 1, j) + f(i, j - 1)\ )

    #include<iostream>
    using namespace std;
    
    const int N = 1010;
    int f[N][N];
    int n;
    
    int main(){
        cin >> n;
        
        for(int i = 0; i <= n; i ++) f[0][i] = 1;
        for(int i = 1; i <= n; i ++)
            for(int j = i; j <= n; j ++){
                f[i][j] = f[i - 1][j];
                if(j > i) f[i][j] = f[i - 1][j] + f[i][j - 1];
            }
            
        cout << f[n][n];
    }
    

    代码等价变换:

    #include<iostream>
    using namespace std;
    
    const int N = 1010;
    int f[N];
    int n;
    
    int main(){
        cin >> n;
        
        for(int i = 0; i <= n; i ++) f[i] = 1;
        for(int i = 1; i <= n; i ++)
            for(int j = i + 1; j <= n; j ++)
                f[j] += f[j - 1];
            
        cout << f[n];
    }
    

    f[0n]正好是卡特兰数的0n项

  • 相关阅读:
    Fractal
    加工生产调度/爬山Mountain Climbing
    魔板 Magic Squares
    USACO Section 1.5
    USACO Section 1.4(有技巧的枚举)
    卷积神经网络 CNN
    优化算法
    评价分类器的好坏
    梯度消失 / 梯度爆炸以及Xavier初始化
    Dropout
  • 原文地址:https://www.cnblogs.com/tomori/p/13606309.html
Copyright © 2020-2023  润新知