当前位置: 首页 > news >正文

luogu「EZEC-10」打分 --- Python3 解法

题目链接:
「EZEC-10」打分
 

import sys

def max_score(n, m, scores):
    scores.remove(min(scores)) # 最小值的选取,不影响中间部分的处理
    scores.sort()
    max_ = scores[-1]
    sum_ = sum(scores[:-1]) # 中间部分
    len_ = len(scores)

    needed = (len_ - 1) * max_ - sum_  # 中间部分对齐最大值的操作数

    if needed >= m: # 所给的操作次数 无法完全填满 ; 全部往中间部分凑
        return sum_ + m
    
    else: # 可操作次数大于needed,即中间部分对齐最大值后,仍有剩余
        m -= needed 

    turns , extra = divmod(m,len_) # m // len_ && m%len_ 均分是否有剩余
    
    if extra == 0: # 整除
        return max_ * len_ + turns * len_ - max_ - turns # 最大值:max_ + turns
    
    else: # 有余数
        return max_ * len_ + turns * len_ + extra -max_ - turns - 1 # 最大值:max_ + turns + 1 ,最大值比原来的最大值 max + turns 还大1

n, m = map(int, sys.stdin.readline().split())
scores = list(map(int, sys.stdin.readline().split()))
print(max_score(n, m, scores))

        注意正确处理”最大值的更新“部分,其实也可以用mod运算圈定增长的范围,我这一步之前没有做好,就换方法了.... 有ac的好方法,欢迎指正

相关文章:

  • libaom 源码分析:scalable_decoder.c 文件
  • 村民信息管理系统
  • SpringBoot可以同时处理多少请求?
  • 使用 Arduino 的基于物联网的空气污染监测系统
  • 群体智能优化算法-爱情进化算法 (Love Evolution Algorithm, LEA,含Matlab源代码)
  • 51c自动驾驶~合集24
  • RCore学习记录002
  • AI时代API安全挑战加剧,解读API防护的最佳方案
  • 浅谈鸿蒙跨平台开发框架ArkUI-X
  • Nginx 代理访问一个 Web 界面时缺少内容
  • S32K144入门笔记(十六):ADC的API函数解读
  • 洛谷 P3986 斐波那契数列
  • 【SoC基础】单片机常用总线
  • 银行数字化转型
  • Superagent 异步请求:如何处理复杂的 HTTP 场景
  • 【ARM】Linux内核驱动之ADC驱动开发,MAX11617驱动示例
  • 【技术】浏览器自动化框架的演变洞察
  • 安卓开发调用本地接口以及设置base_url思路
  • Flink Cdc TiDB详解
  • C++基础: Rule of five/zero/three
  • 中国田径巡回赛西安站完赛:男子跳远石雨豪夺冠
  • 跨越三十年友情,61岁余隆和60岁齐默尔曼在上海再度合作
  • 侵害孩子者,必严惩不贷!3名性侵害未成年人罪犯今日执行死刑
  • 国税总局上海市税务局通报:收到王某对刘某某及相关企业涉税问题举报,正依法依规办理
  • 普京召开俄乌谈判筹备会议,拉夫罗夫、绍伊古等出席
  • 齐白石精品在波士顿展出,“白石画屋”呈现水墨挥洒