1. 簡介
Codeforces是全球最著名的在線評測系統之一,這裡有高水平的選手,高質量的題目,高密度的比賽。該網站由俄羅斯的一個團體創立並負責運營。當然,該網站上大部分博客、評論、題面都是英語的。
2. 網址
Codeforces 在線評測系統的網站為 https://www.codeforces.com/) 。現在,您可以在瀏覽器中輸入該網址或單擊左側連結進入Codeforces在線評測系統。
3. 使用
3.1 主界面
我們首先了解一下頂部菜單欄的功能:
剩下的幾個是定期的活動。
在整個網站的右上角是登錄和註冊按鈕,若您沒有帳號,則建議您先註冊帳號,再閱讀剩下的部分,注意註冊帳號時的驗證碼需要珂學上網才能顯示。我們不詳細討論這個
登錄完成後,我們看到網站變成了這樣:其實沒變多少
側邊欄的內容依次為:即將舉行的比賽、用戶個人信息(注意若您沒有參加過計分的比賽,則不顯示Rating這一行)、比賽積分最高的前十個用戶等等。
而佔主頁最大位置的是重要的置頂文章,這些文章通常是比賽預告、網站重大更新的通知等。
3.2 社區
通過以下幾種方式,您可以查看文章:
(1) 單擊首頁置頂文章或者TOP菜單中的文章的標題
(2) 直接輸入網址
(3) 通過側邊欄最後的"Recent actions"
(4) 其它您想得到的方式
打開文章後,界面是這樣的:
細心的讀者可能發現了,文章最底部以及評論右側均有一個綠色的正三角與紅色的倒三角,這就是Codeforces的「贊」和「踩」功能,在英語中稱為upvote(s)和downvote(s)。這些評價會影響用戶的Contribution,如果一條評論收到太多的downvotes,那麼它還會被隱藏。
3.3 比賽
名字顏色
Codeforces在線評測系統最吸引人的就是它獨特的比賽系統了。在Codeforces上,每名用戶都擁有比賽積分(即Rating)(新用戶默認為1500),比賽積分會影響用戶的名字顏色,具體來說就是這樣的:
注意,這裡的黑名指的是首字母為黑色,其餘字母為紅色,例如tourist。真正的黑名是網站管理員,例如MikeMirzayanov。沒有參加比賽的用戶默認沒有名字顏色(其實就是黑色),例如csacademy。
比賽種類
Codeforces上舉行的比賽一般有4種,分別是Div.1,Div.2,Div.3和Educational Round。先講講Educational Round,Educational Codeforces Round一般題目較多,採用擴展ACM-ICPC賽制,即提交代碼立即出結果,錯誤一次計10分鐘罰時。但是為什麼叫「擴展」呢,因為比賽結束後會有12個小時的全網開放hack時間。
剩下的就是Codeforces最常見的Div.1,Div.2,Div.3的比賽了,我們先用一張表格了解一下這三類比賽(個人看法)。
關於表格內的內容:當一場Div.2的比賽和一場Div.1的比賽同時進行時,紫名只能參加Div.1,否則才可以參加Div.2。
當然,如果您對上面的解釋不清晰,您可以查看比賽預告中的說明,或者在比賽預告中的評論中提問。
比賽流程
在參加一場比賽之前,您需要報名。首先單擊CONTEST進入頁面,然後單擊要報名的比賽後面的 Register >> ,在彈出的頁面中單擊Register即可。
比賽開始後,我們便可以單擊 Enter >> 進入比賽頁面享受Codeforces的高質量比賽了!
比賽頁面的內容大致如下:
4. 關於Codeforces賽制
Codeforces賽制的題目會有兩套數據,一套稱為Pretest,另一套稱為System Test,當比賽進行時,您的提交將會用Pretest測評,若通過所有Pretest,則會顯示Pretests passed,否則顯示錯誤的Pretest編號和錯誤類型,例如 Wrong answer on pretest 3,並且還會被罰50分(如果錯在Pretest 1或者編譯錯誤則不會罰時)。
當您的一道題目Pretests passed後,您可以單擊題目列表中那到題目後面的「鎖」的符號,這稱為鎖題,當您鎖了一道題後,您就不能再次提交該題了,但是您可以查看同一個房間中其它人本題的代碼,若找到了其他人代碼中的錯誤,您可以向他發起hack,即提交一組測試數據使得他的代碼錯誤(例如Wrong answer等等)。一次成功的hack可以使您獲得100分,不成功則扣掉50分。
房間:參加比賽的所有用戶大約每40各人組成一個房間,只有在房間裡的用戶才能互相hack。
發起hack的方式是:雙擊您的房間的排行榜中的任何一個綠色數字,再單擊通過的提交的編號查看代碼,如果找到了錯誤,那麼您可以單擊hack it!,然後輸入數據或者上傳數據生成器,單擊hack即可。
注意:鎖了的題不能再提交,也就是說如果您鎖了一道題,但是您的程序被hack了,那麼您就沒有補救的機會了。所以,叉人有風險,鎖題需謹慎。
比賽結束後不久就會進行System Test,就是將您已經通過Pretest的程序再測試一套數據,這套數據包括所有比賽中成功hack的數據(所以在Codeforces上有些題目可能擁有上百個測試點),只有您的程序通過了System Test,您的程序才是真正通過了,否則稱為Failed System Test(FST),這道題也就不得分了。
5. 如何讀懂排行榜
比賽排行榜圖解:
比賽結束後Codeforces系統會自動根據您的比賽排名為您計算Rating。當這場比賽您的成績比較好您就增加rating,否則可能會降。
6. 題解
若您在做題過程中遇到了困難,那麼下面的內容可能對您有幫助:
找到該題側邊欄中的"Contest materials",然後單擊"Tutorial"或者"Editoral",會有英語(極少數為俄語)題解。Codeforces上的提交記錄和代碼都是公開的,你可以找到該題其它人的提交記錄,查看代碼。
注意:不要提交其它人的代碼,否則您會被警告甚至會被封號。
發貼求助。
以上就是Codeforces在線評測系統的遊玩攻略了,祝您能在Codeforces上收穫知識與樂趣!當然還有高Rating啦
本文發布於洛穀日報,特約作者:ezoixx130
原文地址:https://www.luogu.org/blog/ezoixx130/codeforces-tutorial