LuoguP7713 「EZEC-10」打分 题解
Content
某个人去参加比赛,\(n\) 个评委分别给他打分 \(a_1,a_2,\dots,a_n\)。这个人可以最多执行 \(m\) 次操作,每次操作将一个评委的分数加 \(1\)。定义他的最终分数为去掉一个最高分和一个最低分后的剩余得分的总和。求可能最高的最终分数。
数据范围:\(3\leqslant n\leqslant 10^5\),\(0\leqslant m,a_i\leqslant 10^9\)。
Solution
本题解我们来分 Subtask 来讲解。
Subtask 1 (5 pts):\(m=0\)
这一个部分分其实是很好拿的。我们只需要将所有评委的分数排个序,然后统计一下第 \(2\sim n-1\) 个人的分数和即可。
Subtask 2 (10 pts):\(n=3\)
这个 Subtask 对于启发正解很有作用。
我们不妨先花费若干次操作,把第 \(2\) 高的分数和最高的分数齐平。当然在这里如果就把操作数给用完了,那么就直接可以统计结果了。
如果第 \(2\) 高的分数和最高的分数齐平了的时候,操作数还没有用完,我们就把剩余的操作数平均分成两份(如果多出了一份先丢在一边)。然后我们把这两份分别分给第 \(2\) 高的分数和最高的分数。多出的一份无论分给谁都不会影响最终的结果,因此就可以直接输出第 \(2\) 高的分数了。
Subtask 3 (15 pts):\(n,m\leqslant 10^3\)
这个 Subtask 你随便怎么暴力模拟应该都可以过,因此不做赘述。
Subtask 4 (70 pts):正解
我们回到 Subtask 2,受到其中均分的启发,我们不妨先让第 \(2\sim n-1\) 高的分数和最高的分数齐平。当然在这里如果就把操作数给用完了,那么就直接可以统计结果了。
如果全部齐平了还没用完操作,我们就把剩余的操作数平均分成 \(n-1\) 份(多出的分不出来的操作数先丢在一边,留做备用)。然后先把这 \(n-1\) 份平均分给第 \(1\sim n-1\) 高的分数,然后再去看是否多出的操作数。如果有多出的操作数,我们将一个操作数分给最高的分数,再将剩余的操作数随便分给第 \(2\sim n-1\) 的分数中的任意几个(每个人分 \(1\) 个操作数)就可以了。
Code
ll a[100007];
int main() {
int n = Rint; ll m = Rll;
ll ans = 0;
F(int, i, 1, n) a[i] = Rint;
sort(a + 1, a + n + 1);
if(m) {
F(int, i, 2, n - 1) {
int add = min(a[n] - a[i], m);
a[i] += add, m -= add;
}
int sum = m / (n - 1) * (n - 1), eve = sum / (n - 1);
F(int, i, 2, n) a[i] += eve;
m -= sum;
if(m) {
a[n]++, m--;
F(int, i, 2, n - 1)
a[i] = a[i] + min(1ll, m), m = max(m - 1, 0ll);
}
}
F(int, i, 2, n - 1) ans += a[i];
return write(ans), 0;
}
LuoguP7713 「EZEC-10」打分 题解的更多相关文章
- 「GXOI / GZOI2019」简要题解
「GXOI / GZOI2019」简要题解 LOJ#3083. 「GXOI / GZOI2019」与或和 https://loj.ac/problem/3083 题意:求一个矩阵的所有子矩阵的与和 和 ...
- loj#2054. 「TJOI / HEOI2016」树
题目链接 loj#2054. 「TJOI / HEOI2016」树 题解 每次标记覆盖整棵字数,子树维护对于标记深度取max dfs序+线段树维护一下 代码 #include<cstdio> ...
- 【题解】#6622. 「THUPC 2019」找树 / findtree(Matrix Tree+FWT)
[题解]#6622. 「THUPC 2019」找树 / findtree(Matrix Tree+FWT) 之前做这道题不理解,有一点走火入魔了,甚至想要一本近世代数来看,然后通过人类智慧思考后发现, ...
- 洛谷比赛 「EZEC」 Round 4
洛谷比赛 「EZEC」 Round 4 T1 zrmpaul Loves Array 题目描述 小 Z 有一个下标从 \(1\) 开始并且长度为 \(n\) 的序列,初始时下标为 \(i\) 位置的数 ...
- 【转】具透 | 你可能不知道,iOS 10 有一个中国「特供」的联网权限功能
9 月底,苹果正式在北京成立了苹果中国研发中心.近几年,我们也在每年更新的 iOS 系统中不断看到,苹果对中国市场的关照.从早前的九宫格输入法,到最近的骚扰电话拦截,都照顾了国内用户的需求. 在 iO ...
- Windows 10 如何使用「系统还原」功能备份系统状态和配置
https://www.sysgeek.cn/windows-10-system-restore/ 在 Windows 10 系统中,「系统还原」功能旨在创建配置快照,并在检测到系统更改时将其工作状态 ...
- 「POJ 3666」Making the Grade 题解(两种做法)
0前言 感谢yxy童鞋的dp及暴力做法! 1 算法标签 优先队列.dp动态规划+滚动数组优化 2 题目难度 提高/提高+ CF rating:2300 3 题面 「POJ 3666」Making th ...
- LOJ #2538. 「PKUWC 2018」Slay the Spire (期望dp)
Update on 1.5 学了 zhou888 的写法,真是又短又快. 并且空间是 \(O(n)\) 的,速度十分优秀. 题意 LOJ #2538. 「PKUWC 2018」Slay the Spi ...
- 「LOJ#10051」「一本通 2.3 例 3」Nikitosh 和异或(Trie
题目描述 原题来自:CODECHEF September Challenge 2015 REBXOR 1≤r1<l2≤r2≤N,x⨁yx\bigoplus yx⨁y 表示 ...
随机推荐
- 发布项目到maven中央仓库
https://www.xiaominfo.com/2017/04/25/swagger-bootstrap-ui-issue-maven-central/?tdsourcetag=s_pcqq_ai ...
- fastq文件基本信息统计工具
之前写的一个小工具,写的很简陋,名字取的也很随意就叫skr,哈哈.主要是fq转fa.合并多个染色体的vcf文件等,功能不多(主要是C写起来太操蛋了T_T),通常我也只用来统计fastq文件信息: 这里 ...
- R语言与医学统计图形-【34】绘制统计表格
表的绘制,主要是临床三线表. 1.tableone包 #install.packages('tableone') library(tableone) set.seed(2017) age <- ...
- R语言与医学统计图形-【19】ggplot2坐标轴调节
ggplot2绘图系统--坐标轴调节 scale函数:图形遥控器.坐标轴标度函数: scale_x_continous scale_y_continous scale_x_discrete scale ...
- Excel-在整个工作簿中查找/替换
13.在整个工作簿中查找/替换 调范围为:工作簿,默认是工作表:
- 21-Add Two Numbers-Leetcode
You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...
- 20-Integer to Roman-Leetcode
比较简单的思路:用map存放各个位的数字到罗马字符的映射 然后从个位依次遍历高位加上映射即可. Given an integer, convert it to a roman numeral. Inp ...
- 微信小程序扫描普通二维码打开小程序的方法
很久没有写博客了,之前换了一份工作,很久没有做Android开发了,现在转做前端开发了,记录一下遇到的问题及解决的方法. 最近做微信小程序开发,遇到一个需求,后台管理系统生成的问卷和投票会有一个二维码 ...
- Angular中@Output()的使用方法
子component中的html文件 <button (click)="Send()">送出</button><br> 子component中的 ...
- web必知,多终端适配
导读 移动端适配,是我们在开发中经常会遇到的,这里面可能会遇到非常多的问题: 1px问题 UI图完美适配方案 iPhoneX适配方案 横屏适配 高清屏图片模糊问题 ... 上面这些问题可能我们在开发中 ...