iT邦幫忙

2022 iThome 鐵人賽

DAY 13
0

Topcoder 算是早期以軟體技術面試起家的公司,以前申請實習的時候,HR 都會建議我們參考 Topcoder 網站的題目。Topcoder 有早於 Codeforces 建立起的解題競賽系統,他們會定期舉辦單人的網路賽 (Single Round Match, SRM)。不過,隨著 Codeforces 與其他如 Hackerrank、Codility、Leetcode、CSAcademy 解題系統的崛起,大概從 2015 年開始參賽人數就逐漸下滑 (Quora 上的討論)。Topcoder 除了舉辦解題競賽以外,還有許多其他的項目例如需要不斷找出最佳化演算法的 Topcoder 馬拉松 (Marathon)、還有 UI 競賽等等。

Topcoder 每一年度的公開賽 Topcoder Open,算是這些競賽的集大成。其中關於程式解題競賽的項目 "TCO Algorithm",分成 3 到 4 個階段 (Stage)。前一年表現得很好的選手們,可以收到 "automatic bye",跳過第一階段的比賽。

Yes
(p.s. 影片中第一位出場的就是競賽界的傳奇人物 Gennady Korotkevich (tourist))

Topcoder 的演算法比賽也是滿有意思的:通常一場比賽會有 75 分鐘的寫程式階段 (Coding Phase),會有 3 道題目,難易度通常用最高得分來表示,比如 250-500-1000 等。這個分數會隨著時間而遞減,你可能的得分會依據上傳的時間而定。這 75 分鐘結束後,會有短暫的 5 分鐘中場休息,接著便是趣味的挑戰階段 (Challenge Phase)。在比賽開始前,主辦單位會將所有人按照賽前積分平均分配到不同的『房間』。每個房間大概會有 15~20 人。在挑戰階段,你可以查看同一個房間的選手們的程式碼 (但是系統會禁止你複製他的程式碼到本地端,你只能用看的)。如果你發現某位選手的程式碼有問題,你可以上傳一份測試資料 (只需要輸入檔),想辦法『挑戰』該程式碼 (以前我們的說法是『掐』(Cha))。如果搶在別人成功之前挑戰成功,你可以獲得額外的分數。但是如果你掐失敗了,會倒扣一些分數。

挑戰階段結束後,就開始系統測試階段 (System Test Phase)。基本上這時間不太需要做事情,只需要等著系統將所有還活著沒被掐掉的程式碼跑過內部的測試資料。很多時候 bug 藏得太細沒被抓出來,就會在系統測試階段被刷掉。

這個賽制還算有趣,可惜比賽系統 (Topcoder Arena) 隨著時間的演進,有幾年頻出狀況,變得比較難用些。後來他們開發了網頁版本的 Web Arena,但過了一兩年才變得比較穩定些,願意一起參賽的選手們也變得比較少了。現在 Topcoder 要辦比賽還得避開 Codeforces、Google Code Jam 和 Hackercup 的比賽時間,不勝唏噓。


上一篇
『臉書黑客盃』Meta Hackercup
下一篇
Google Code Jam
系列文
有事者·試競程(附帶每日演算法小謎題)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言