09 Rating计算

题目描述

给定初始 Rating 为 0,进行 n 场比赛。第 $i$ 场比赛的表现分为 $P_i$,Rating 计算公式为:

其中 $X$ 为当前 Rating,$P$ 为本次表现分。计算结果需四舍五入到整数,作为下次计算的初始 Rating。

解题思路

核心公式

四舍五入可以用整数运算实现:

设 $d = P - X$,则:

  • 整数部分:$d // 4$
  • 小数部分:$d \% 4$
  • 若 $d \% 4 \geq 2$,则向上取整

代码实现

n = int(input())
arr = [int(x) for x in input().split()]
y = 0  # 初始 Rating

for p in arr:
    x = y
    d = p - x
    y = x + d // 4
    if d % 4 >= 2:
        y += 1
    print(y, end=' ')

复杂度分析

  • 时间复杂度:$O(n)$
  • 空间复杂度:$O(1)$

关键点

  1. 全程整数运算:避免浮点数精度问题
  2. 四舍五入:通过取模判断小数部分是否 $\geq 0.5$(即 $\geq 2$)

09 Rating计算
https://mingsm17518.github.io/2026/03/18/algorithm/solutions/2025_SDU_Star_Remake/09-rating-calculation/
作者
Ming
发布于
2026年3月18日
更新于
2026年3月19日
许可协议