来源:牛客网:

文章目录

  • 题目描述
  • 题解:
  • 代码:
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 1048576K,其他语言2097152K
64bit IO Format: %lld

题目描述

平衡二叉树,顾名思义就是一棵“平衡”的二叉树。在这道题中,“平衡”的定义为,对于树中任意一个节点,都满足左右子树的高度差不超过 d.
空树的高度定义为0,单个节点的高度为1,其他情况下树的高度定义为根节点左右子树高度最大值 + 1.
一棵在高度上平衡的树,节点数可能不平衡,因此再定义一棵树的不平衡度为这棵树中所有节点的左右子树的节点数之差的最大值。 给定平衡的定义参数d,
你需要求出所有高度为 n 的平衡树中不平衡度的最大值。

输入描述:

两个整数,n, d.

输出描述:

一个整数:所有高度为 n 的平衡树中不平衡度的最大值。

示例1
输入

4 1

输出

5

说明

下面这棵树在 d=1 的定义下高度是平衡的,其不平衡度为 5。

备注:

0 ≤ n, d ≤ 60

题解:

不平衡度为这棵树中所有节点的左右子树的节点数之差的最大值
那我们要让不平衡度最大就要尽可能使左右子树差最大,左子树尽可能多,右子树尽可能少
左子树尽可能多的话我们可以直接给拉满,也就是满二叉树节点就是pow(2,n-1),n为整个树的高度,n-1为左子树的高度
右子树尽可能少,那深度就尽可能浅,但因为有题目左右子树的高度差不超过 d的限制,所以右子树的深度就是m=n-1-d。然后右子树也是有左右子子树,同样的道理
我们定义dp[i]表示深度为i的子树最少总节点个数
当前的树高是i,满足题意就是建一颗高度为i-1的左子树和一颗h-d-1的右子树
能得到转移方程:dp[i]=dp[i-1]+dp[i-d-1]+1
这个+1就是+根
我们要求最大的不平衡度
最后用满左子树 -(高度为n-d-1的右子树)- 1

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e3+4;
ll dp[maxn];
int main()
{int n,d;cin>>n>>d;ll sum=0;if(n==0||n==1)return cout<<"0", 0;sum=(1ll<<(n-1)); dp[1]=1;for(int i=2;i<=n-d-1;i++){dp[i]=dp[i-1]+1;if(i-d-1>=0)dp[i]+=dp[i-d-1];}cout<<sum-dp[n-d-1]-1<<endl;return 0;
}

【每日一题】7月6日精讲—平衡二叉树相关推荐

  1. 【每日一题】7月3日精讲—毒瘤xor

    [每日一题]7月3日精讲-毒瘤xor 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K Special Judge, 64bit IO Format: ...

  2. 第五人格七月三日服务器维护要多久,第五人格微信每日一题7月3日答案是什么_今天有四个人来访过_玩游戏网...

    <第五人格>2021独特时装体验卡礼包 第五人格2021独特时装体验卡礼包怎么获得?礼包中有独特时装体验卡.角色体验卡等奖励,小编这里就分享一下第五人格2021独特时装体验卡礼包领取地址, ...

  3. 牛客网 每日一题 7月23日题目精讲—wpy的请求

    来源:牛客网: 文章目录 wpy的请求 题解: 代码: wpy的请求 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K Special Judge ...

  4. 【每日一题】7月10日精讲—矩阵取数游戏

    来源:牛客网: 文章目录 题目描述 题解: 代码: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld ...

  5. PMP模拟试题每日5题(5月5日)

    摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.你的敏捷团队与一个开发商 ...

  6. PMP模拟试题每日5题(5月7日)

    摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.产品开发团队采用敏捷开发 ...

  7. PMP模拟试题每日5题(4月28日)

    摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.项目需要委托第三方研发一 ...

  8. PMP模拟试题每日5题(4月22日)

    ​​​​摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.项目技术团队强烈 ...

  9. PMP模拟试题每日5题(5月6日)

    摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.沟通对项目成功非常关键. ...

最新文章

  1. 珍藏版:3万字详解mRNA疫苗
  2. Coding and Paper Letter(二十)
  3. 做好数据分析必备的 5 种典型可视化图表 | 技能卡片 No.1
  4. EBS R12.2 ADOP (R12.2 AD Online Patching) - 5
  5. c#之task与thread区别及其使用
  6. 服务器响应401,服务器返回HTTP响应代码:401,URL:https
  7. oracle日期大于3个月,用三个月时间做oracle实验,养成实验习惯
  8. python图像切面numpy_NumPy做图像处理不香吗?我用Python把秋日里最美的景色做成了这种效果~...
  9. 从 0 开始机器学习 - 机器学习算法诊断
  10. @软考考生,你想要的论文写作方法及规范,给你安排上了!
  11. clearcase 操作指南
  12. 获取行政边界经纬度数据
  13. 转载:微软内部职位分类和待遇
  14. 学会使用 GitHub 之 GtHub 与 ATOM 联姻
  15. iOS之网络下载文件
  16. cfa专题突破网课资源
  17. Ubuntu下安装rar软件,解压rar压缩文件方法
  18. 拼命加班撸Excel,准点下班的新人却被升职
  19. adam优化_PyTorch 学习笔记(七):PyTorch的十个优化器
  20. MSSQL数据库恢复挂起问题解决

热门文章

  1. 数学知识点大集合!有了它学数学真的很简单!
  2. 全景图解高铁数据,谁是最有潜力的高铁城市?
  3. python双除_python2和python3 中的除法的区别
  4. python 数据驱动接口自动化框架_python接口自动化测试 - 数据驱动DDT模块的简单使用...
  5. 怎样让电脑速度变快_硬盘在电脑中起什么作用?
  6. cs6序列号 mac版photoshop_重磅!Parallels Desktop 16 M1版发布
  7. centos rpm 安装 perl_Linux【常用软件安装篇】
  8. leetcode349. 两个数组的交集(思路+详解)
  9. Java当中 报错 没有有任何类型 的外层实例可访问
  10. C++实现AOE网中的关键路径算法(邻接表存储)