| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1606 人关注过本帖
标题:哥哥们,姐姐们,救救小弟吧,这是今年蓝桥杯原题
只看楼主 加入收藏
青铜小弟
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-6-18
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
哥哥们,姐姐们,救救小弟吧,这是今年蓝桥杯原题
给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从
上到下、从左到右的顺序依次是 A 1 , A 2 , ··· A N
现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点
权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。
注:根的深度是 1。
【输入格式】
第一行包含一个整数 N。
第二行包含 N 个整数 A 1 , A 2 , ··· A N 。
【输出格式】
输出一个整数代表答案。
【样例输入】
7
1 6 5 4 3 2 1
【评测用例规模与约定】
对于所有评测用例,1 ≤ N ≤ 100000,−100000 ≤ A i ≤ 100000。
搜索更多相关主题的帖子: 包含 节点 深度 输出 整数 
2019-06-18 21:39
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:20 
没有任何需要想一想的地方吧

首先,题目说“1≤N≤100000”,那么可以算出最多17层,第16层最多有32768个节点,第17层最多有34465个节点(不加限定的话第17层可以有65536个节点,但这样一来总节点数就131071个了)。
题目又说“−100000≤Ai≤100000”,那么 34465*100000 = 0xCD6D6AA0; 同层的节点权值之和范围是[-0xCD6D6AA0,+0xCD6D6AA0],因此四字节的具符号整型是存不下它的
看到这里心一沉,如果评测用例没超过四字节的具符号整型,那么看出应当用long long的人反而就吃亏了。

程序代码:
#include <stdio.h>

long long foo( unsigned count )
{
    long long r = 0;
    for( unsigned i=0; i!=count; ++i )
    {
        long a;
        scanf( "%ld", &a );
        r += a;
    }
    return r;
}

int main( void )
{
    unsigned long n;
    scanf( "%u", &n );

    unsigned layer = 0;
    long long weight = 0;
    for( unsigned i=0; n!=0; ++i )
    {
        unsigned count = (1u<<i)<=n ? (1u<<i) : n;
        long long t = foo( count );
        n -= count;

        if( weight < t )
        {
            weight = t;
            layer = i;
        }
    }
    printf( "%u\n", layer+1 );
}

2019-06-19 09:42
青铜小弟
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-6-18
收藏
得分:0 
回复 2楼 rjsp
您能解释一下这个程序吗?我是一个新手,谢谢,麻烦您下了!
2019-06-19 20:38
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
回复 3楼 青铜小弟
这有什么不能理解的?
第一层1个,加起来
第二层2个,加起来
第三层4个,加起来
第四层8个,加起来
……
哪层累积和最大就取哪层。
2019-06-21 10:33
快速回复:哥哥们,姐姐们,救救小弟吧,这是今年蓝桥杯原题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014950 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved