树形dp

%%%popoqqq

设dp[i][j]表示当前i个节点的树,深度小于等于j的树的个数

那么dp[i][j] = sigma(dp[k][j-1]*dp[n-k-1][j-1]) 比较好理解 然后记忆化搜索就行了

这个dp状态感觉挺巧妙的,以前没见过

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
typedef long long ll;
const int N = , mod = ;
int n, h, T;
ll dp[N][N];
ll dfs(int n, int h)
{
if(n < || h < ) return ;
if(n == ) return ;
if(h == ) return n == ;
if(dp[n][h] != -) return dp[n][h];
ll ret = ;
for(int i = ; i < n; ++i) ret = (ret + dfs(i, h - ) * dfs(n - i - , h - )) % mod;
return dp[n][h] = ret;
}
int main()
{
memset(dp, -, sizeof(dp));
for(cin >> T; T; --T)
{
cin >> n >> h;
cout << ((dfs(n, h) - dfs(n, h - )) % mod + mod) % mod << endl;
}
return ;
}

bzoj3769的更多相关文章

  1. 【BZOJ3769】spoj 8549 BST again DP(记忆化搜索?)

    [BZOJ3769]spoj 8549 BST again Description 求有多少棵大小为n的深度为h的二叉树.(树根深度为0:左右子树有别:答案对1000000007取模) Input 第 ...

  2. bzoj3769 spoj 8549 BST again

    题解: 比较水的题目 普通dp其实复杂度还是比较大的 可以任意模数ntt优化.. 但好像没人写.. 代码: #include <bits/stdc++.h> using namespace ...

  3. BZOJ3769:BST again(记忆化搜索DP)

    Description 求有多少棵大小为n的深度为h的二叉树.(树根深度为0:左右子树有别:答案对1000000007取模) Input 第一行一个整数T,表示数据组数. 以下T行,每行2个整数n和h ...

  4. 【BZOJ3769】BST again [DP]

    BST again Time Limit: 10 Sec  Memory Limit: 256 MB[Submit][Status][Discuss] Description 求有多少棵大小为n的深度 ...

  5. [转载]hzwer的bzoj题单

    counter: 664BZOJ1601 BZOJ1003 BZOJ1002 BZOJ1192 BZOJ1303 BZOJ1270 BZOJ3039 BZOJ1191 BZOJ1059 BZOJ120 ...

  6. BZOJ刷题列表【转载于hzwer】

    沿着黄学长的步伐~~ 红色为已刷,黑色为未刷,看我多久能搞完吧... Update on 7.26 :之前咕了好久...(足见博主的flag是多么emmm......)这几天开始会抽时间刷的,每天几道 ...

随机推荐

  1. 跳石头(codevs 4768)

    题目描述 Description 一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有N ...

  2. 【HDOJ6324】Grab The Tree(博弈)

    题意: 思路: #include <stdio.h> #include <vector> #include <algorithm> #include <str ...

  3. AlertDialog自定义

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  4. webstorm初始化

    1.皮肤设置,重启后Terminal皮肤生效 2.排除目录 2.1全局排除 2.2局部排除 选中文件夹 右击Make Directroy As 选择 Excluded 3.代码自定义 3.1 cons ...

  5. .NET Core 3.0之深入源码理解Configuration(一)

    Configuration总体介绍 微软在.NET Core里设计出了全新的配置体系,并以非常灵活.可扩展的方式实现.从其源码来看,其运行机制大致是,根据其Source,创建一个Builder实例,并 ...

  6. [bzoj2780][Spoj8093]Sevenk Love Oimaster_广义后缀自动机

    Sevenk Love Oimaster bzoj-2780 Spoj-8093 题目大意:给定$n$个大串和$m$次询问,每次给出一个字符串$s$询问在多少个大串中出现过. 注释:$1\le n\l ...

  7. ArrayList和LinkedList区别(蚂蚁金服面试题)

    1. 是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全: 2. 底层数据结构: Arraylist 底层使用的是Object数组:LinkedLis ...

  8. 文本框变更值触发js事件

    //输入数量更新,不需要失去焦点才触发 $(document).on('input', "input[id^='itemquantity']", function () { sav ...

  9. Go -- 多个go文件包名都是main

    用go run *.go 或 go run one.go two.go main.go

  10. office outlook 無法開啟 outlook 視窗

    例如[無法啟動Microsoft Office Outlook.無法開啟Outlook 視窗.] 1.啟動 Outlook 安全模式outlook.exe /safe2.清除並重新產生目前設定檔的功能 ...