蓝桥杯-完全二叉树的权值(运用数学思想超快解题)
题目描述
给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从 上到下、从左到右的顺序依次是 A1,A2,…,An ,如下图所示:
现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。
注:根的深度是 1。
输入描述
第一行包含一个整数 N(1≤N≤10^5)N(1≤N≤10 ^5)
第二行包含 N 个整数 A1, A2, ··· An (−10^5≤ Ai ≤10^5)
输出描述
输出一个整数代表答案。
示例
输入
7
1 6 5 4 3 2 1
输出
2
分析
重点是知道每个节点所处的深度是多少,将所有深度相同的节点的权值加起来,进行取最大值即可。
那么如何求得节点所处的深度呢?
根据分析(学过二叉树的话应该也有讲)我们可以知道对于完全二叉树来说,如果有n个节点,那么他的最小深度是:log2(n+1) 于是,利用这个公式即可让这道题变得简单清晰了。
我们的math头文件里有log运算,用起来用起来!(值得注意的是log可是以10为底,此题需要的是以2为底)
AC代码
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
int arr[10001];
int main()
{int n;cin>>n;int weight=0;int deep;for(int i=1; i<=n; i++){cin>>weight;deep=ceil(log(i+1)/log(2));//利用提到的公式,除以log10(2)变为以2为底arr[deep]+=weight;//相同深度权值相加}int maxn=arr[1];int ans=1;for(int i=2; i<=deep; i++){if(arr[i]>maxn){maxn=arr[i];ans=i;}}cout<<ans<<endl;return 0;
}
蓝桥杯-完全二叉树的权值(运用数学思想超快解题)相关推荐
- 蓝桥杯——完全二叉树的权值(简单好理解)
题目描述 给定一棵包含 NN 个节点的完全二叉树,树上每个节点都有一个权值,按从 上到下.从左到右的顺序依次是 A1, A2, ··· AN.A1,A2,⋅⋅⋅AN,如下图所示: 现在小明要把相 ...
- 2019/Province_C_C++_A/F/完全二叉树的权值
完全二叉树的权值 Code Python if __name__ == '__main__':N = int(input())A = list(map(int, input().split()))cu ...
- 刷题之完全二叉树的权值和小字辈及根据后序和中序遍历输出先序遍历
1.完全二叉树的权值 1)题目 给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从 上到下.从左到右的顺序依次是 A1, A2, ··· AN,如下图所示: 现在小明要把相同深度的节 ...
- 蓝桥杯单片机十一届省赛_“第十届蓝桥杯青少组C++省赛”前三题解题思路及参考答案!...
关注 及时了解信息学竞赛相关资讯 第十一届蓝桥杯青少组C++省赛即将到来,待考的各位小同学有没有刷完去年的真题呢?以下是为大家复习准备的"第十届蓝桥杯青少组C++省赛"前三题解题思 ...
- 16行代码AC_【第十届蓝桥杯省赛c/c++B组真题解析】7.完全二叉树的权值
励志用更少的代码做更高效的表达 给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从 上到下.从左到右的顺序依次是 A1, A2, · · · AN,如下图所示 现在小明要把相同深度的 ...
- [蓝桥杯][2019年第十届真题c/c++B组]完全二叉树的权值
题目描述 给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从 上到下.从左到右的顺序依次是 A1, A2, · · · AN,如下图所示: 现在小明要把相同深度的节点的权值加在一起, ...
- 2019蓝桥杯C++B组 年号字串;完全二叉树的权值
填空题 **问题:**小明用字母A对应数字1,B对应数字2,以此类推,用Z对应26,.对于27以上的数字,小明用两位或更长位的字符串来对应,例如AA对应27,AB对应28,AZ对应52,LQ对应329 ...
- 蓝桥杯:完全二叉树的权值——C++详解
题目描述: 给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从 上到下.从左到右的顺序依次是 A1, A2, ··· AN,如下图所示: 现在小明要把相同深度的节点的权值加在一起,他 ...
- 完全二叉树的权值-JavaA
给定一棵包含N 个节点的完全二叉树,树上每个节点都有一个权值,按从 上到下.从左到右的顺序依次是A1, A2, AN,如下图所示: 现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点权值 ...
最新文章
- 51nod 1220 约数之和【莫比乌斯反演+杜教筛】
- [HNOI2002]营业额统计
- G.Fast应用将开启 中国光进铜退没白干
- html用dom显示xml,dom 编程(html和xml)
- pytorch torch.nn.L1Loss
- 【干货】奢侈品线上消费圈层洞察-阿里妈妈.pdf(附下载链接)
- 什么是数据、元数据、主数据?这可能是大多数人没看过的解释
- 宏程序自动生成软件_【软件】宏程序自动生成器V3.0下载
- 利用ambassador实现container跨主机连接
- [bbk4965] 第102集 -第13章 - 表空间管理 00
- 如何导出微信好友?通讯录好友保存
- 微机 —— 8086微处理器的内部结构
- JDK-8u131 软件安装教程
- PR常见问题:pr导入素材没有音轨怎么办
- 北京大学可视化发展前沿研究生暑期学校Day3
- Prege(图计算框架)
- SSM出租车查询系统毕业设计-附源码220915
- TP6 TP5 Db‘ not found
- 2020年双十一销售额破亿的新品牌达16个与往年三倍之多
- 【@入口@】伏草惟存,文章精选系列导航
热门文章
- 共享汽车充电桩方案开发详解
- Python软件编程等级考试一级——20220915
- 《ASP.NET AJAX 应用剖析立即上手》简体版即将上市!
- eclipse创建maven报错
- css 超出添加滚动条并隐藏滚动条
- 【2018-11-15】中证1000指数的估值详情
- 分布式ID之snowflake
- 0对任何数取余_大数取余
- 详解Lodash中的fp实现
- 用Python将excel数据插入到MySQL报错(1265, Data truncated for column ‘num‘ at row 1)