zoukankan      html  css  js  c++  java
  • 51nod 1412 AVL树的种类

    非常简单的一道题,一眼题

    枚举左儿子大小,再枚举深度即可

    复杂度$O(n^2 log n)$

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    using namespace std;
    
    #define ri register int
    #define sid 2005
    #define mod 1000000007
    
    int n, ans;
    int f[sid][20];
    
    inline void inc(int &a, int b) { 
        a += b; 
        if(a >= mod) a -= mod; 
    }
    
    int main() {
        cin >> n; 
        f[0][0] = f[1][1] = 1;
        for(ri i = 2; i <= n; i ++)
        for(ri d = 2; d <= 19; d ++)
        for(ri L = 0; L < i; L ++) {
            int R = i - L - 1;
            inc(f[i][d], 1ll * f[L][d - 1] * f[R][d - 1] % mod);
            inc(f[i][d], 1ll * f[L][d - 1] * f[R][d - 2] % mod);
            inc(f[i][d], 1ll * f[L][d - 2] * f[R][d - 1] % mod);
        }
        for(ri i = 1; i <= 19; i ++) inc(ans, f[n][i]);
        printf("%d
    ", ans);
        return 0;
    }
  • 相关阅读:
    算法70----只有两个键的键盘【动态规划】
    Shell
    Shell
    Shell
    Shell
    Shell
    Tools
    Jenkins
    Java
    Product
  • 原文地址:https://www.cnblogs.com/reverymoon/p/9677346.html
Copyright © 2011-2022 走看看