資訊學競賽ACM評分機制
- 2019 年 12 月 4 日
- 筆記

演算法競賽常見的評分方式有兩種:一種是中小學NOIP/CSP-JS所採用的OI機制;另一種是大學ACM-ICPC所採用的ACM機制。中小學採用OI機制的比賽比較多,但也有採用ACM機制的比賽。
ACM機制的比賽排名規則:先按AC的題目數量排名,若AC的題目數量一樣,則按罰時排名。罰時越少,排名越高,罰時越多,排名越低。
所謂「罰時」指的是做出題目所用的總時間,加上提交錯誤所付出的代價,每提交錯誤一次,會罰時20分鐘。
例1
張三、李四、王五參加了一場比賽,這場比賽共有兩道題。張三在第10分鐘一次性AC了第一道題,第50分鐘一次性AC了第二道題。李四在第20分鐘一次性AC了第一道題,第60分鐘一次性AC了第二道題。王五在第20分鐘一次性AC了第一道題,第二道題前兩次提交沒通過,在第50分鐘時第三次提交並AC。則三人的排名如下:
|
排名 |
選手姓名 |
通過題數 |
罰時 |
第一題 |
第二題 |
|---|---|---|---|---|---|
|
1 |
張三 |
2 |
60 |
10 |
50 |
|
2 |
李四 |
2 |
80 |
20 |
60 |
|
3 |
王五 |
2 |
110 |
20 |
50(-2) |
這裡王五的第二題里有個(-2),表示他通過題目之前有過兩次提交失敗的記錄,罰時2 * 20 = 40分鐘。所以王五最終的總罰時為20 + 50 + 2 * 20 =110。
例2
下表是今天舉行的2019年廣州市「智慧創建及編程挑戰」邀請賽初中組的最終排名。


第一行中的A(62/99)表示有99人挑戰過這道題,最終62人成功。B(42/76)表示有76人挑戰過這道題,最終42人成功。
排名第一的同學的罰時為522分鐘,其計算過程為:9 + 19 + 34 + 142 + 163 + 54 = 421分鐘,D題在通過之前失敗過3次,F題在通過之前失敗過2次,罰時5 * 20 = 100分鐘。總罰時為421 + 100 = 521,與系統顯示的522差了一分鐘,不知道是誤差還是系統Bug。
排名第二的同學的罰時為601分鐘,其計算過程為:10 + 31 + 91 + 95 + 138 + 54 = 419分鐘,前四題有9次提交失敗的經歷,罰時9 * 20 = 180分鐘。總罰時為419 + 180 = 599,與系統顯示的601差了兩分鐘,不知道是誤差還是系統Bug。
排名第三的同學的罰時為315分鐘,其計算過程為:7 + 12 + 72 + 76 + 46 = 213分鐘,C題提交失敗過4次,D題提交失敗過1次,罰時5 * 20 = 100分鐘。E題提交失敗過5次,但是最終沒能AC,所以不算時間。總罰時為213 + 100 = 313,與系統顯示的315差了兩分鐘。


