第二轮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