P7713 「EZEC-10」打分 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
我们不妨来考虑一下这 m 分的分配问题。
由于最后肯定要去掉最低分,所以往最低分上加分对答案没有贡献。
所以我们直接一开始就把最低分刨了,考虑剩下的 n - 1 个分。
由于最后要去掉最高分算平均分,所以考虑一下去掉最高分对 m 分的贡献有什么影响。
如果这 m分有一部分加到了最高分上,那么最后 m分对平均分的贡献肯定要变小。
所以我们考虑 优先让 m分加到不是最高分的分数上,如果把这些不是最高分的分数都加到最高分,再考虑将剩下的分数平均分配,因为都加到最高分以后肯定会让m 分的贡献减小。
一个思路是,先把除了最高最低分的剩下 n - 2个原始分加起来,然后考虑这个总原始分加上 m和最高分n−2 的关系。
#include <bits/stdc++.h> using namespace std; #define int unsigned long long int a[100005]; signed main() { int n, m; cin>>n>>m; for (int i=1; i <= n; ++i) cin>>a[i]; sort(a+1,a+n+1); long long ans= 0; for (int i=2; i <= n - 1; ++i) ans+= a[i]; if (ans+ m < (n - 2) * a[n]) cout<<ans+m; else cout<<(ans+m+a[n]) * (n - 2) / (n - 1); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现