51nod 1412 AVL数的种类(DP
题意给了n个节点 问AVL树的种类
卧槽 真的好傻 又忘记这种题可以打表了 就算n^3 也可以接受的
树的深度不大
那么转移方程很明显了
dp[i][j] 代表的是节点为n深度为j的树的种类
k为左子树的节点个数
//dp[i][j+1] += dp[k][j]*dp[i-k-1][j];
//dp[i][j+1] += 2*dp[k][j-1]*dp[i-k-1][j];
![](/assets/blank.gif)
![](/assets/blank.gif)
#include <stdio.h> #include <iostream> #include <algorithm> #include <string.h> #include <math.h> using namespace std; const long long MOD = 1000000007; typedef long long ll; ll dp[2100][30];//i 表示个数 j表示深度 ll check(int x,int y) {return 0; } void init() {dp[0][0] = dp[1][1] = 1;//dp[i][j+1] += dp[k][j]*dp[i-k-1][j];//dp[i][j+1] += 2*dp[k][j-1]*dp[i-k-1][j];for(int i=2;i<=2000;i++){for(int j=0;j<=17;j++){for(int k=0;k<i;k++){dp[i][j+1] += dp[k][j]*dp[i-k-1][j];dp[i][j+1] += 2*dp[k][j-1]*dp[i-k-1][j];dp[i][j+1]%=MOD;}}} } int main() {// 0 0// 1 1// 2 2// 3 init();int n;cin>>n;ll ans = 0;for(int i=0;i<30;i++){ans += dp[n][i];}cout<<ans%MOD<<endl;return 0; }
AC代码
转载于:https://www.cnblogs.com/Geek-xiyang/p/5990634.html
51nod 1412 AVL数的种类(DP相关推荐
- 洛谷2657 windy数(数位DP)
传送门 [题目分析] 数位DP经典题了. 考虑直接统计R内的windy数和L-1内的windy数,两者相减即为L~R之间的windy数. 考虑DP,记录当前位以及上一位所填的数,当前是否前面为前导零, ...
- 题解-路径数+算法-回荡dp
题解-路径数+算法-回荡dp Description 题目背景 Euphemia\texttt{Euphemia}Euphemia 到一个 N×NN\times NN×N 的药草田里采药,她从左上角的 ...
- 【每日一题Day95】LC1815得到新鲜甜甜圈的最多组数 | 状态压缩dp 记忆化搜索
得到新鲜甜甜圈的最多组数[LC1815] 有一个甜甜圈商店,每批次都烤 batchSize 个甜甜圈.这个店铺有个规则,就是在烤一批新的甜甜圈时,之前 所有 甜甜圈都必须已经全部销售完毕.给你一个整数 ...
- HDU-2084 数塔 经典dp,水
1.HDU-2084 数塔 2.链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084 3.总结:从下往上推,最后归于顶点.方程为 dp[i][j] ...
- 8786:方格取数 (多线程dp)
[题目描述] 设有N*N的方格图(N<=10),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0.某人从图的左上角的A 点出发,可以向下行走,也可以向右走,直到到达右下角的B点.在走 ...
- hdu2167 方格取数 状态压缩dp
题意: 方格取数,八个方向的限制. 思路: 八个方向的不能用最大流了,四个的可以,八个的不能抽象成二分图,所以目测只能用dp来跑,dp[i][j]表示的是第i行j状态的最优,具体看 ...
- uestc 250 windy数(数位dp)
题意:不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间,包括A和B,总共有多少个windy数? 思路:数位dp #include<iostream ...
- 洛谷 P1004 方格取数 【多线程DP/四维DP/】
题目描述(https://www.luogu.org/problemnew/show/1004) 设有N*N的方格图(N<=9),我们将其中的某些方格中填入正整数,而其他的方格中则放 人数字0. ...
- BZOJ 2734 [HNOI2012]集合选数 (状压DP、时间复杂度分析)
题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2734 题解 嗯早就想写的题,昨天因为某些不可告人的原因(大雾)把这题写了,今天再来写题解 ...
最新文章
- HTML文档中应用css样式的方法总结
- OpenCV实现Mat与vector,Mat与数组互转
- Exception in thread main java.lang.NullPointerException一例解决
- Angular 项目 tsconfig.json 里定义的 out-tsc 还有作用吗?
- python用代码安装3.6_Python3.6安装及引入Requests库的实现方法
- linux shell之awk
- 2019.7.16考试总结
- unittest测试框架详谈及实操(四)
- 发送邮件 ajax,使用Ajax发送电子邮件
- 吴恩达神经网络和深度学习-学习笔记-24-在不同的划分上进行训练和测试+不匹配数据划分的偏差和方差
- IE7 下载EXCEL注意地方
- linux 统计文件的个数
- 100个高质量Java开发者博客 【转】
- 程序员所需要的数学知识都这里了
- 生活娱乐 WIFI机器人(某机器发烧友自己动手做一台)
- 【2022省选模拟】叮叮车——卡特兰数、数位DP
- Error: unable to perform an operation on node ‘rabbit@rabbitma‘ please see diamostics infoxmation
- 智慧档案馆档案库房一体化平台建设
- 链栈的定义、构建、入栈、出栈和取栈顶元素
- java EE 2019 11 15关于map集合
热门文章
- JZOJ 5431. 【NOIP2017提高A组集训10.28】序列操作
- vue 箭头函数兼容性_前端学习计划之VUE学习(二)
- python获取当前时间代码_python当前时间格式化代码
- python socket服务器多线程_Python多线程socket服务器端
- ue编辑器拖拽上传图片_Typora + PicGo打造超好用的Markdown编辑器
- 2021.02.01 Visual QA论文阅读
- Visual Tracking:运行ECO模型
- AtCoder AGC030B Tree Burning
- mysql insert报错_mysql数据库使用insert语句插入中文数据报错
- keil obj 文件 结构_keil下的STM32程序开发部署(一)