随笔 - 41  文章 - 0  评论 - 0  阅读 - 1689 

P7713 「EZEC-10」打分 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

 

我们不妨来考虑一下这 m 分的分配问题。

由于最后肯定要去掉最低分,所以往最低分上加分对答案没有贡献。

所以我们直接一开始就把最低分刨了,考虑剩下的 n - 1 个分。

由于最后要去掉最高分算平均分,所以考虑一下去掉最高分对 m 分的贡献有什么影响。

如果这 m分有一部分加到了最高分上,那么最后 m分对平均分的贡献肯定要变小。

所以我们考虑 优先让 m分加到不是最高分的分数上,如果把这些不是最高分的分数都加到最高分,再考虑将剩下的分数平均分配,因为都加到最高分以后肯定会让m 分的贡献减小。

一个思路是,先把除了最高最低分的剩下 n - 2个原始分加起来,然后考虑这个总原始分加上 m和最高分n2 的关系。

 

复制代码
#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;
}
复制代码

 

posted on   ljq0120  阅读(79)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示