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

    题目链接:51nod 1412 AVL树的种类

    开始做的时候把深度开得过小了结果一直WA,是我天真了。。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 #include<queue>
     5 using namespace std;
     6 typedef long long ll;
     7 const int mod = 1e9+7;
     8 const int N = 2001;
     9 ll dp[N][16];//dp[i][k]  i:节点数, k:深度
    10 void solve(){
    11     int i, j, k;
    12     dp[0][0] = dp[1][1] = 1;
    13     for(i = 2; i < N; ++i){
    14         for(k = 2; k < 16; ++k){
    15             for(j = 0; j < i; ++j){
    16                 //j为右子树的节点数,左右子树节点之和为i-1
    17                 //左右子树深度相同
    18                 dp[i][k] += dp[i-1-j][k-1] * dp[j][k-1];
    19                 //左右子树深度差一
    20                 dp[i][k] += 2 * dp[i-1-j][k-2] * dp[j][k-1];
    21                 dp[i][k] %= mod;
    22             }
    23         }
    24     }
    25 }
    26 int main(){
    27     int n, i;
    28     ll ans = 0;
    29     solve();
    30     scanf("%d", &n);
    31     for(i = 1; i < 16; ++i){
    32         ans += dp[n][i];
    33     }
    34     ans %= mod;
    35     printf("%lld
    ", ans);
    36     return 0;
    37 }
    View Code
  • 相关阅读:
    效能分析
    个人项目词频统计2
    PSP 进度条 柱状图 饼状图
    四人小组项目
    结对编程
    品评历届学生作品
    构建之法终于到手了
    补上周一的进度条进度条:
    燃尽图
    scrum站立会议
  • 原文地址:https://www.cnblogs.com/GraceSkyer/p/5995191.html
Copyright © 2011-2022 走看看