Atcoder Help 有关Atcoder 的介绍-1 涨分规则
AtCoder 的 Rating 计算系统基于改进的 Elo 算法,主要包含以下核心机制:
一、基础计算公式
Rating 是「表现分(Performance)」的加权平均值减去衰减函数 f ( n ) f(n) f(n),其中:
新用户初始 f ( 1 ) = 1200 f(1)=1200 f(1)=1200,随着参赛次数 n n n 增加, f ( n ) f(n) f(n) 单调递减并趋近于 0 0 0。
若稳定保持 X X X 的表现分,Rating会从 X − 1200 X-1200 X−1200 逐步收敛至 X X X。
二、表现分计算
平均表现分(APerf)
历史表现分按时间倒序加权计算:
A P e r f = ( ∑ P e r f i × 0. 9 i ) / ( ∑ 0. 9 i ) APerf = (\sum Perf_i\times 0.9 ^i)/(\sum0.9^i) APerf=(∑Perfi×0.9i)/(∑0.9i),权重系数 0. 9 i 0.9^i 0.9i 使得近期比赛影响更大。
新用户默认值根据比赛类型设定: A G C = 1200 / A R C = 1000 / A B C = 800 AGC=1200/ARC=1000/ABC=800 AGC=1200/ARC=1000/ABC=800。
实际表现分(Perf)
通过参赛者当前 A P e r f APerf APerf 与比赛名次计算得出,具体公式未公开,但遵循Elo系统对胜负概率的预期调整。
三、特殊机制
首场比赛 Rating 可能大幅波动(类似 Codeforces 初始 1500 1500 1500 的惩罚机制)。
参加约 10 10 10 场 Rated 比赛后,Rating 会趋于稳定反映真实水平。
不同比赛类型( A G C / A R C / A B C AGC/ARC/ABC AGC/ARC/ABC)采用独立的 Rating 体系。
四、对比其他平台
相比 Codeforces 的固定初始分 1500 1500 1500,AtCoder 的衰减函数设计对新手更友好。
与洛谷采用的类似系统相比,AtCoder 的 Rating 分布更集中在 [ 400 , 1400 ] [400,1400] [400,1400] 区间。
完整公式详见 AtCoder 官方文档,实际计算可能包含未公开的调整参数。