scoring - mofhu/cc-trevize GitHub Wiki

Scoring

Origin post link

很多同学都比较关注自己的分数是怎么来的,排名的规则是什么,这里就详细的介绍一下。

**首先,对于每一个用例,它自身有一个分值权重(相对于总分的比例),不同的题目根据难度不同,这个权重也不同,**举个例子:

简单的题目,权重是0.04,复杂一些的,是0.06,最难的,0.1。

假如总分设定为100分,简单题目的满分就是4分,复杂一些题目的满分就是6分,最难题目的满分就是10分。

接下来,我们来看看每个参赛者每道题的单独得分是如何计算的。

用最简单的一句话来概括:这个分数是个标准分。

一道题,并非解出来就能得满分,能得多少分,一方面要看是否计算正确(错误直接0分),另一方面,要看参赛者在这道题上的排名。

排名是根据答案的优劣来评判的,初赛阶段的评判维度有 2个,路径总权重与程序耗时,其中权重优先级大于耗时。

排名与分数的对应公式(结果保留 2位小数):

单题得分=(参赛人数-名次+1)*100/参赛人数

注意:在显示单个题目得分的时候,为了符合大家习惯,满分仍按100来计算,并没有乘以权重。

举例来说,一道题,有10人参赛,其中5人作出了解,另外5没能完成。性能如下(cost表示路径权重,time表示耗时):

A,cost:20,time:50ms

B,cost:10,time:100ms

C,cost:10,time:90ms

D,cost:20,time:50ms

E,cost:25,time:30ms

F,cost:0,time:100000000ms

G,cost:0,time:100000000ms

H,cost:0,time:0ms

I,cost:0,time:0ms

J,cost:0,time:0ms

那么他们的排名和得分如下:

1,C,100.00

2,B,90.00

3,A,80.00

3,D,80.00

5,E,60.00

F,G因程序超时或没有生成最后结果,不参与排名,成绩为0(cost和time会分别被自动设置为0与100000000) H,I,J因答案错误,不参与排名,成绩为0(cost和time都会被自动设置为0)

在上面的示例中,A和D并列第三,因此均得80分,而E只能排到第五,得分为60。

最后,就是总成绩了,总成绩比较简单,就是参赛者所有题目的得分乘以权重之后的总和:

总成绩=∑单题得分*该题权重

而选手最终的排名,由总成绩决定。

以上就是对排名和得分的介绍。