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)$
关键点
- 全程整数运算:避免浮点数精度问题
- 四舍五入:通过取模判断小数部分是否 $\geq 0.5$(即 $\geq 2$)
09 Rating计算
https://mingsm17518.github.io/2026/03/18/algorithm/solutions/2025_SDU_Star_Remake/09-rating-calculation/