51nod 1412
考虑到只与深度和点的个数有关
$f[n][d]$ 表示 $n$ 个点,深度为 $d$ 的 $AVL$ 树有多少种
枚举左子树大小为 $i$, 进行转移
并且深度为 $logn$ 级别
$f[n][d] = f[i][d - 1] * f[n - i - 1][d - 1] + f[i][d - 1] * f[n - i - 1][d -2] + f[i][d - 2] * f[n - i - 1][d - 1]$
#include <bits/stdc++.h> const int N = 2e3 + , Mod = 1e9 + ; long long f[N][], n; int main() {
scanf("%d", &n);
f[][] = ; f[][] = ; f[][] = ; f[][] = ;
for(int i = ; i <= n; i ++) {
for(int d = ; d <= ; d ++) {
for(int j = ; j < i; j ++) {
f[i][d] = (f[i][d] + (f[j][d - ] * f[i - - j][d - ]) % Mod + (f[j][d - ] * f[i - - j][d - ]) % Mod + (f[j][d - ] * f[i - - j][d - ]) % Mod) % Mod;
}
}
}
int Ans();
for(int i = ; i <= n; i ++) Ans = (Ans + f[n][i]) % Mod;
printf("%lld", Ans);
return ;
}
51nod 1412的更多相关文章
- 51nod 1412 AVL树的种类(dp)
题目链接:51nod 1412 AVL树的种类 开始做的时候把深度开得过小了结果一直WA,是我天真了.. #include<cstdio> #include<cstring> ...
- 51nod 1412 AVL树的种类(经典dp)
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1412 题意: 思路: 经典dp!!!可惜我想不到!! $dp[i][k] ...
- ACM学习历程—51NOD 1412 AVL树的种类(递推)
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1770 这是这次BSG白山极客挑战赛的B题.设p(i, j)表示节点个数为 ...
- 51nod 1412 AVL树的种类
非常简单的一道题,一眼题 枚举左儿子大小,再枚举深度即可 复杂度$O(n^2 log n)$ #include <cstdio> #include <cstring> #inc ...
- 51nod 1412 AVL数的种类(DP
题意给了n个节点 问AVL树的种类 卧槽 真的好傻 又忘记这种题可以打表了 就算n^3 也可以接受的 树的深度不大 那么转移方程很明显了 dp[i][j] 代表的是节点为n深度为j的树的种类 k ...
- 51nod水题记
妈呀51nod已经刷不动了又开始跟bzoj一样总是得看题解了...那么发一下总结吧... 1051:最大子矩阵 #include<cstdio> #include<cstring&g ...
- 【51Nod 1244】莫比乌斯函数之和
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1244 模板题... 杜教筛和基于质因子分解的筛法都写了一下模板. 杜教筛 ...
- 51Nod 1268 和为K的组合
51Nod 1268 和为K的组合 1268 和为K的组合 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 给出N个正整数组成的数组A,求能否从中选出若干个,使 ...
- 51Nod 1428 活动安排问题
51Nod 1428 活动安排问题 Link: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1428 1428 活 ...
随机推荐
- Image splicing forgery detection combining coarse to refined convolutional neural network and adaptive clustering
粗到精的卷积神经网络与自适应聚类相结合的图像拼接篡改检测 研究方向:图像篡改检测 论文出处:ELSEVIER A类 学校:西安电子科技大学网络工程学院.重庆邮电大学计算机科学与技术学院 关键字:Spl ...
- 【Polya计数】Buildings II
Buildings II 题目描述 As a traveling salesman in a globalized world, Alan has always moved a lot. He alm ...
- 深度剖析Kubernetes API Server三部曲 - part 1
欢迎来到深入学习Kubernetes API Server的系列文章,在本系列文章中我们将深入的探究Kubernetes API Server的相关实现.如果你对Kubernetes 的内部实现机制比 ...
- LaTeX技巧96:LaTeX 图片控制命令,位置控制
LaTeX技巧96:LaTeX 图片控制命令,位置控制 2012-04-05 17:25:44 zd0303 阅读数 28512更多 分类专栏: Latex LaTeX 控制图片的位置,就是加感叹 ...
- shell脚本使用记录
一些比较功能需求比较简单的可以考虑使用shell脚本来写,这样可以方便快捷稳定 1. 读取文件值,根据文件值1 或 0 来开启和关闭某些程序 a. while : do done 是无限循环. b. ...
- Android三种菜单的使用方式
一.选项菜单(OptionMenu) 在res目录下新建menu目录,用于放置菜单布局文件(右键res->new->Android Resource Directory->menu) ...
- vue之双向绑定
Vue的一大核心是双向绑定,在2.0中采用数据劫持,用Object.defineProperty实现,但作者已声明在3.0中会采用proxy实现 Object.defineProperty是什么? ...
- eclipse导入项目后出现红色叉号的解决方案
对于一名程序员来说,我导入的项目在项目的名称上无端加了一个红色的叉号,虽然这个不友好的符号,对于我整个的项目运行没有任何影响,但是总让我觉得不舒服,大大的叉号写在我的项目的脑袋上,我心里能舒服吗?于是 ...
- 同一个url对应多个视图函数,取第一个视图函数有效
# -*- coding: utf-8 -*- from flask import Flask app = Flask(__name__) @app.route('/') def index(): r ...
- SmartEvent with kbmMW #1
前言 前面的文章,我写了有关SmartBinding框架方面的内容.SmartBinding的目的是将数据容器绑定到一起,通常情况下,数据容器可以是显示数据或与数据交互的控件(Edit,ListVie ...