Appeal to the Audience(吸引观众+贪心)

该博客主要讨论了第二轮B组A题的解题方法,这是一道中等难度的题目,涉及贪心算法。问题设定为在一场锦标赛中,参赛者的晋级路径构成一棵树,每场比赛的精彩程度由参赛者的能力值之和决定。解题思路是确保每个人至少参加一场比赛,然后通过前缀和和堆来寻找最大精彩程度,即选取能力值最高的若干人进行比赛。
摘要由CSDN通过智能技术生成
第二轮B组A题

题目:
在这里插入图片描述

输入输出
在这里插入图片描述
样例
在这里插入图片描述
【考察内容】贪心
【难度】中等
【题意】有n个人比赛,晋级图为某任意树形(根节点为冠军),每个人在初始时在一个叶子节点,每个选手有一个能力值,比赛时的精彩程度等于本场比赛的各选手能力值之和,求最大的精彩程度。
【思路】每个人最少打一场比赛,答案至少为sum(全体),去掉所有叶子节点后,产生的新的叶子节点为能够参加第二场比赛的人数,假设还剩下t人,则最大值为sum(前t大),其中前t大的数可以用前缀和去求,快速找到叶子节点可以用堆实现。
【代码实现】

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5 + 5;
ll n,m,a[N],sum[N],du[N],fa[N],t,ans
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值