Advertisement

完全二叉树(2019蓝桥杯第七题)

阅读量:

问题描述

在这里插入图片描述

当前小明需要将处于相同层级的节点权重进行累加,并希望确定哪一层级的权重总和达到最大值。若存在多个层级具有相同的最大权重总和,则应返回其中数值最小的那个层级。需要注意的是,树的根节点所处的层级为1。

【输入格式

复制代码
    #include <bits/stdc++.h>
    #define INF 0x3f3f3f
    using namespace std;
    int a[100001]; //最多 100001个 
    long long sum1[100]; //sum[i]表示深度为i的所有节点权值和 
    int main()
    {   long long i=1,j,p=1,ans=1,c=1,N;//c表示层数 p表示每层的最大节点容量数  
    cin>>N;
    while(1)
    {
    	for(j=1;i<=N&&j<=p;j++,i++)
    	{
    		cin>>a[i];  //输入权值 
    		sum1[c]+=a[i]; //对应层数的总和加上当前权值 

全部评论 (0)

还没有任何评论哟~