TopCoder - 線上程式設計競賽
簡介
TopCoder 是一個提供線上程式競賽的網站,類似 ACM 的競賽,提供演算法題目的比賽和練習之外,還有其他的軟體設計的項目,如果獲得前幾名的話還可以拿到獎金。
可以到官網點擊右上 [SIGN UP] 註冊,之後可以在這邊參加各種類型的競賽。
其中的演算法類型提供了線上編寫程式送出的功能,可以從畫面左上角的 O(n) 的圖示進入,其他圖示表示不同類型的競賽
點擊 O(n) 之後,他會開啟 Java 程式,登入後可以選擇進入練功房寫以前競賽的題目來練習,或者是參加目前進行中的競賽。
進入練功房之後,可以開啟題目來練習,一個競賽有三道題目,依據難度分別是 250、500 和 1000 分的題目。
開啟之後會進入撰寫程式畫面,TopCoder 目前支援 Java、C++、C# 和 VB 四種語言。程式寫到一半要離開的話,可以使用 Save,若寫完則可以 Compile,若要自己輸入資料測試則使用 Test,確認一切正確之後則可以 Submit 出去,題目越快完成交出去分數會越高,從題目被開啟後就開始計時,另外重新 Submit 的話還會額外的扣分,無論如何,完成至少可得到 30% 的分數。
寫完程式後也可以透過 Practice Options 下的 Run System Test 來用系統內的一些 Test Case 來測試你的程式。
在練功房中還可以按 Summary 看大家的狀態、分數和程式碼。分數的顏色表示使用的語言,可以從個人設定去改,點擊分數兩下可以打開看該使用者所寫的程式,其中有一種狀態 Challenge Succeeded 表示有人 Challenge 他的程式,並成功找出問題。
開啟別人的程式之後最有趣的地方就是可以 Challenge 對方,找出可能出錯的地方,並送出會造成錯誤的 Input,如果成功的話就可以得到 50 分,如果失敗的話會倒扣 25 分。
我比較擅長使用 C# 寫,不過可惜線上的 C# .Net 版本是 2.0,用 VS2010 開啟的專案還要先降成 .Net 2.0,像 LINQ 之類很多好用的功能也不能用,另外上傳的時候要把 Namespace 拿掉編譯才會通過。
延伸閱讀
以下列出目前有實作的題目提供參考:
- Tournament \ 1-16 \ 1 - Inv 2001 R1 \ HowEasy
- Tournament \ 1-16 \ 1 - Inv 2001 R1 \ SquareDigits
- Tournament \ 1-16 \ 1 - Inv 2001 R1 \ Prerequisites
- Tournament \ 1-16 \ 2 - Inv 2001 Semi A+B \ MatchMaker
- Tournament \ 1-16 \ 2 - Inv 2001 Semi A+B \ Tothello
- Tournament \ 1-16 \ 2 - Inv 2001 Semi A+B \ ChessCover