AVL树的种类

平衡二叉树(AVL树),是指左右子树高度差至多为1的二叉树,并且该树的左右两个子树也均为AVL树。 现在问题来了,给定AVL树的节点个数n,求有多少种形态的AVL树恰好有n个节点。
Input
<span style="font-size: 14px;">一行,包含一个整数n。 (0 < n <= 2000)</span>

<span style="font-size: 14px;">
</span>

Output
<span style="font-size: 14px;">一行表示结果,由于结果巨大,输出它对1000000007取余数的结果。</span>

<span style="font-size: 14px;">
</span>

Input示例
<span style="font-size: 14px;">10</span>

Output示例
<span style="font-size: 14px;">60</span>

题意:如题。

题目链接:AVL树

解题思路:

首先题目限制是2000个结点,由二叉树的性质可知,最多也只能有20层(20层,2048个结点),所以可以考虑暴力!

然后一棵n个结点的AVL树,其左右两棵子树,也是AVL树,并且总结点数为n-1,而且层次差不能超过1,所以两棵子树也就是两种情况(层次差为0,层次差为1)。

dp[i][j]表示高度为i,结点数为j的所有AVL树的形态数。

就有状态转移方程:

dp[i][j]=dp[i-1][k]*dp[i-1][j-k-1]+ dp[i-1][k]*dp[i-2][j-k-1]*2

注意到左右子树层次不同时是可以交换左右子树的,但层次相同的时候循环k其实已经把左右对称的情况考虑了。

总结:

DP的训练还是太少太少了,竟然想到了DP,却不知道怎么列方程!!!不过也再一次见识到了DP的威力。

代码:

#include#include#include#include#define N 1000000007
using namespace std;
typedef long long ll;
ll dp[20][2005];
int main()
{
int i,j,k,n;
while(~scanf("%d",&n)){
memset(dp,0,sizeof(dp));
dp[1][1]=dp[0][0]=1;//边界情况
ll ans=dp[1][n];
for(i=2;i<20 ;i++  ){ //20层的节点数为2028
for(j=0;j<=n;j++){ //DP,总结点数位 n
for(k=0;k

BSG白山极客挑战赛-AVL树相关推荐

  1. 近期活动盘点:首届Apache Flink 极客挑战赛、2019年社会计算机国际会议

    想知道近期有什么最新活动?大数点为你整理的近期活动信息在此: 7 月 24 日,阿里云峰会上海开发者大会开源大数据专场,阿里巴巴集团副总裁.计算平台事业部总裁贾扬清与英特尔高级首席工程师.大数据分析和 ...

  2. 报名 | 首届!Apache Flink 极客挑战赛强势来袭,重磅奖项等你拿,快来组队报名啦!...

    7 月 24 日,阿里云峰会上海开发者大会开源大数据专场,阿里巴巴集团副总裁.计算平台事业部总裁贾扬清与英特尔高级首席工程师.大数据分析和人工智能创新院院长戴金权共同发布首届 Apache Flink ...

  3. 第三届Apache Flink 极客挑战赛暨AAIG CUP攻略发布!

    简介:阿里云 周云峰(云岩).淘系技术部 黄家明(明小)两位老师共同解读第三届Apache Flink 极客挑战赛暨AAIG CUP赛题内容 本文作者:阿里云 周云峰(云岩).淘系技术部 黄家明(明小 ...

  4. 第三届 Apache Flink 极客挑战赛暨 AAIG CUP 报名开始!

    简介:万众期待的第三届极客挑战赛,报名进行中- 伴随着海量数据的冲击,数据处理分析能力在业务中的价值与日俱增,各行各业对于数据处理时效性的探索也在不断深入,作为主打实时计算的计算引擎 - Apache ...

  5. 腾讯极客挑战赛正式开赛!「鹅罗斯方块」开“玩”啦

    燃爆盛夏,「腾讯极客挑战赛」巅峰对决竞技场现已开启! 极客对决,等你前来! 点击[阅读原文],即刻报名参赛 勇夺offer名额和万元奖品!

  6. 26万奖金 | 第一届 E-MapReduce 极客挑战赛 诚邀英才前来挑战!

    日前," 第一届 E-MapReduce 极客挑战赛 "在阿里云天池官网正式开赛.据悉,本次大赛由阿里云.英特尔联合举办,聚焦 SparkSQL 执行效率,探索 TPC-DS 测试 ...

  7. 26万奖金 | 阿里云 E-MapReduce 极客挑战赛邀你来战!

    日前," 第一届 E-MapReduce 极客挑战赛 "在阿里云天池官网正式开赛.据悉,本次大赛由阿里云.英特尔联合举办,聚焦 Spark SQL 执行效率,探索 TPC-DS 测 ...

  8. 腾讯极客挑战赛第一期:解开一道即将尘封十几年的封印 writeup

    文章目录 腾讯极客挑战赛第一期:解开一道即将尘封十几年的封印 writeup 简要说明 第一题 1+1=? 第二题 (x*18-27)/3-(x+7496)=0, x=? 第三题 `41*x-31*x ...

  9. 2022第二届低代码极客挑战赛邀你来战!

    随着数字经济的加速深化,80%+的企业与机构对业务需求的敏捷响应.高效低成本的开发与运维有着强烈的需求,而在这其中,越来越多企业与机构的领导者在IT建设以及数字化转型探索中,会考虑利用低代码/零代码产 ...

  10. 【最强大脑】全球脑王的极客挑战赛之路:1413876分夺冠如何炼成?

    导语 | 在腾讯云+社区联合腾讯码客.腾讯安全平台部全新打造的创新赛事[腾讯极客挑战赛 | 鹅罗斯方块]中,4570名参赛者为我们带来前所未有.异彩纷呈的作品.一场技术竞技,把一群志同道合的开发者聚集 ...

最新文章

  1. 关于XDC约束文件,你需要知道的几点
  2. HALCON打开之后相机无法被别的程序找到解决方法
  3. ICPC2008哈尔滨-A-Array Without Local Maximums
  4. 前期绑定 vs 后期绑定
  5. 【干货】吴甘沙:你是数据,我即生意
  6. 210314阶段三VS使用Linux 的sqlite3 API
  7. Just $h$-index HDU - 6278(主席树找区间大于等于k的个数)
  8. limit offset
  9. Codeforces Round #572 (Div. 2)B
  10. 带你深挖Java泛型类型擦除以及类型擦除带来的问题
  11. 我的世界HMCL如何安装Java_Ubuntu 18.04 LTS 使用 Minecraft 我的世界第三方启动器 HMCL...
  12. Microsoft JScript 运行时错误: Automation 服务器不能创建对象
  13. 1.7-工控上位机软件开发平台介绍
  14. python savefig函数_python中savefig中的键事件。怎么做?
  15. 移动端安卓和苹果手机背景图片显示不全的问题
  16. unbuntu20.0.4 显卡驱动安装,nividia-smi无效
  17. IE和Firefox浏览器下javascript、CSS兼容性研究
  18. 《信号与系统》自然/受迫响应、零输入/零状态响应及系统初始状态
  19. PowerTool kEvP.sys=V4.2 内核拒绝服务漏洞
  20. Tableau 网站流量分析案例之浏览量分析(二)

热门文章

  1. Unity 从2018升级为2021之后 IAP(内购插件)报错解决
  2. 织梦php语句循环,DEDECMS教程:loop循环标签的使用
  3. 第七届全球超宽带高峰论坛在迪拜开幕;爱立信公布2021年第三季度财报 | 全球TMT...
  4. 又一家国内企业推出外骨骼,康复机器人的春天来了吗?
  5. 员工的积极性,是怎样被领导一点点扼杀的?
  6. 时钟同步 matlab,合并时间表并同步其数据
  7. 请结合WIG、Leadmeasures,通过杨总分享的《请大家吸取失败教训而尽早勤恳主动且全面开展推销工作》编制自身的心得体会、改进措施和办法...
  8. python的金融api_金融数据获取的api接口
  9. 不要逼死DBA!如何快速搭建测试数据库
  10. 客户端渲染(BSR:Browser Side Render)、服务端渲染(SSR:Server Side Render)、搜索引擎优化、SEO(Search Engine Optimization)