首页 > 其他 > 详细

2019-F(完全二叉树的权值)

时间:2021-03-04 23:01:30      阅读:47      评论:0      收藏:0      [点我收藏+]
#include <bits/stdc++.h>
using namespace std;
int main(){
    //由于确定是完全二叉树,所以直接按照层进行枚举即可
    long long  n,maxnum = -3500000000ll,maxlayer,cnt =0,flag=0;
    cin>>n;
    for(int layer =0;;layer++){//枚举每一层,从第1层开始进行枚举,层数是layer+1 
        long long sum =0,a;
        for(int i=0;i<(1<<layer);i++)//相当于2的layer次方
        {
        cin>> a;//将读入和运算放在一起,减少时间复杂度
        sum +=a;
        if(++cnt >=n){
            flag = 1;
            break;//所有的元素都读完,则跳出 (最后一层)
        } 
        } 
        if(sum>maxnum)//maxnum一开始取最小值
        {
            maxnum = sum ,maxlayer = layer+1;
        }
        if(flag) break;
    } 
    cout<<maxlayer;
    return 0;
}

 

2019-F(完全二叉树的权值)

原文:https://www.cnblogs.com/zmachine/p/14483248.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!