Skip to content

用户评分 ​

开启「添加用户评分和用户名颜色」后,用户名会按评分显示颜色,个人主页上也会显示具体分数。

评分范围是 0–3000,只根据用户个人主页上公开的数据计算:解决的题数、各种评测结果的次数,以及每天的提交数和 AC 数。不依赖当前时间,也不需要额外请求,所以同一个主页在任何人的浏览器里算出来都是同一个分数。

怎么算 ​

评分由三部分组成:

部分权重看什么
做题量57%解决了多少题
准确度33%评测过的提交里,有多少解决了新题
坚持度10%有提交记录的天数

用到的数据 ​

全部来自个人主页:

符号含义
S解决的题数
X失败的评测次数:格式错误、答案错误、时间超限、内存超限、输出超限、运行错误之和
ad提交统计图中第 d 天的 AC 数
D提交统计图中有提交的天数

编译错误和「忽略」不计入 X。已解决题目旁括号里的数字是这道题的全部提交次数,包括 AC 之后的提交,所以评分不使用它。

S=0 时评分为 0。

做题量 ​

为了防止一天内大量粘贴代码刷题,每天的 AC 数超过 8 之后按对数增长。一天 AC 14 次折算成约 12.5 次,AC 120 次只折算成约 30 次:

g(a)={aa≤88+8ln⁡(1+a−88)a>8B=∑dg(ad)∑dad

没有 AC 记录时 B=1。B 是一个 0–1 之间的折扣,正常练习和比赛时基本等于 1。

做题量=1−e−SB/350

做到几百题以后,继续刷题的收益会越来越小。要拿高分,还得靠准确度。

准确度 ​

先算评测过的提交里解决新题的比例 P。分子分母都加了 40 次虚拟提交(其中 25% 成功),向普通水平收缩,所以只做了几道题、碰巧全对,并不会拿到高分:

P=S+10S+X+40

AC 之后重复提交 AC 代码既不增加 S 也不增加 X,对评分没有影响。

真正的强者也会在难题上失败,所以 P 在 40%–55% 时得到满分。高于这个范围反而减分:几百道题几乎从不失败,更像是复制的代码。

准确度={0P<0.15P−0.150.250.15≤P<0.410.4≤P<0.55max(0.3, 1−2(P−0.55))P≥0.55

题做得越多,准确度越可信,所以它还要乘上可信度:

K=SS+80

坚持度 ​

坚持度=1−e−D/250

合在一起 ​

评分=round(3000×(0.57⋅做题量+0.33⋅准确度⋅K+0.10⋅坚持度)0.9)

算一遍 ​

一个新用户解决了 2 道题,答案错误 12 次,没有其他失败。三天的 AC 数是 8、2、4,这三天都有提交:

  • 每天 AC 都不超过 8,所以 B=1,做题量 =1−e−2/350≈0.00570
  • P=2+102+12+40≈0.2222,准确度 =0.2222−0.150.25≈0.2889,K=282≈0.0244
  • 坚持度 =1−e−3/250≈0.0119
  • 评分 =3000×(0.57×0.00570+0.33×0.2889×0.0244+0.10×0.0119)0.9≈3000×0.006770.9≈33

例子 ​

用户情况评分
A解决 1500 题,平均每题失败 3 次2358
B解决 400 题,平均每题失败 1.25 次2166
C解决 600 题,平均每题失败 7 次1672
D解决 300 题,从未失败(像是复制的)1431
E解决 150 题,平均每题失败 3 次1024
F和 D 一样,但每天 AC 50 题905
G新用户,解决 20 题,平均每题失败 3 次246

评分在浏览器里缓存一天,所以今天的提交通常明天才会反映出来。

颜色 ​

颜色评分
红2400 及以上
橙2000–2399
蓝1600–1999
绿1200–1599
青800–1199
灰低于 800

紫色留给脚本管理员,不代表评分。管理员的用户名总是显示为紫色,鼠标悬停时会提示「脚本管理员」,不再单独显示「脚本管理员」徽章。

在哪里显示 ​

  • 讨论区的帖子和回复
  • 短消息
  • 比赛排名
  • 个人主页(显示具体分数)

想提高评分? ​

多做题,尤其是有挑战的题,并且减少失败的提交。提交前先在本地测好;没过的时候,用获取测试点数据找到原因再改,别反复试。一天集中刷大量题目不会让评分涨得更快。