縮寫:NCPC 對象:大學生 水準:★ 時間:9~10月 主辦:教育部針對全國大專院校學生所舉辦的資訊能力競賽 承辦:由臺灣師範大學與中山大學輪流辦理
分為甲乙丙三組進行。甲組與乙組的競賽內容仿照ACM-ICPC,丙組則是軟體應用比賽,與程式競賽無關。
甲組成績優秀者,可由教育部全額贊助參加ACM-ICPC,某種程度上可視作ACM-ICPC的選手選拔賽。
縮寫:ACM-ICPC 對象:全世界大專院校學生(學士班一年級到碩士班一年級之學生) 水準:台灣賽區★。亞洲各賽區★~★★。總決賽★★★。 時間:台灣賽區11~12月。亞洲各賽區為8~12月。世界總決賽是隔年3~4月。 主辦:Association for Computing Machinery 承辦:台灣賽區由台灣大學院校輪流承辦
部分內容請參考「Online Judge System源起」。
資訊界規模最大、歷史最悠久的競賽,最近幾屆競賽皆有上千所學校、數萬名選手參加。
ACM-ICPC是一個氣氛相當活潑,非常具有特色的競賽。一場ACM-ICPC的賽事,由許多活動所組成,主軸當然是現場上機競賽,另外還有安排晚餐宴會、娛樂表演、城市遊覽等行程。整個賽程為期兩至三天,過程有吃有玩,遊樂的成分比競賽的成分還多,對於參賽選手來說是相當新鮮的體驗。活動細節請參考歷年的ACM-ICPC區域賽網站。
ACM-ICPC的競賽方式是三人一隊,並且要有一位同校教授作為領隊教練。教練的主要作用,是負責向大會接洽賽事行程,替選手打點賽事期間的生活細節,讓選手無後顧之憂,得以傾盡全力比賽,教練就如同經紀人的角色。另外,報名時可以額外登記一名後備隊員,發生緊急狀況時得替補上陣。
現場上機競賽的過程,是所有隊伍聚集於會場,一支隊伍分配一張桌子、三張椅子、一臺電腦、一份英文題本。開賽後所有隊伍同時開始作答,選手必須迅速調校好電腦環境,然後編寫程式解決問題,將程式碼上傳給裁判批改。
所有作答皆是即時批改,幾分鐘內回覆結果,結果只有對與錯兩大類,答錯還可以再答。成績的計算方式,是以答對題數作為主要的排名依據;但是作答的錯誤次數、上傳答案的時刻,統統列入扣分,最後作為次要的排名依據。因此選手除了要盡力答出問題,也要盡快答出問題,還要盡量避免答錯問題又一錯再錯。實力在伯仲之間的隊伍,勝負的差距往往取決於審題與答題的效率。動作慢人一步,或者大意發生失誤,就很可能名落千丈。
選手共有五小時時間,要解出十道左右的演算法問題,期間可以喝水、外出上廁所、享用大會提供的奢華點心、在題本上塗鴉、把題本拆了摺紙鶴、睡覺、談情說愛、玩電腦遊戲;唯一的限制,就是不得與隊伍之外的人交流。
比賽規則看似輕佻,但是事實上,五小時時間解十道左右的題目,電腦卻只有一臺,所以比賽過程是非常緊迫的,就算是技藝高超的選手,也幾乎無暇休息,必須分工合作、爭取時間。通常是一人隨時坐在電腦前作答,充分運用電腦,發揮時效;另外兩人則在旁解讀其餘題目,在腦中羅織解法,伺機輪換上陣。五小時的比賽過程,選手克服環境限制、調適心理壓力、發揮大腦潛能,也可以說是一場精神的對抗賽。
至於教練必須在會場外等待,不得與選手交談。不過教練們可以彼此交流,也可以觀戰和吃點心。現場上機競賽可以說是教練在整個賽程當中最輕鬆的時刻,也是辛苦之後驗收成果的時刻。
現場上機競賽還有許許多多的有趣的地方,此處只做初步介紹,詳細過程留給各位選手們自行體驗吧!
PC2
PC2是一套軟體,以Java程式語言編寫,是ACM-ICPC現場上機競賽使用的平台。選手必須使用PC2上傳程式碼給裁判批改、接收批改結果、向裁判提問、看裁判回覆。裁判也是使用PC2批改程式、統計成績。另外PC2還有本機端測試、click me小遊戲等次要功能。
目前大部分的賽區使用PC2作為競賽平台,包括台灣賽區;僅有少數賽區使用其他平台。由此可知,想參加ACM-ICPC,最好先熟悉PC2的操作方式,比賽時候就不必浪費時間學習操作方式,也能減少因陌生帶來的緊張感。
PC2在官方網站就能下載。至於安裝方式,筆者已全然忘記,就不提了。
PC2並不穩定,容易發生系統崩潰(想必各位都有比賽中斷的經驗);PC2事前設定也非常費時,須安裝於每一台電腦,逐一設定網路,逐一設定帳號密碼,逐一設定測試資料。有鑑於此,ACM-ICPC逐漸改採網頁形式的DOMjudge。
DOMjudge
http://domjudge.sourceforge.net/
台灣一些小型的演算法競賽已經陸續採用DOMjudge,相信台灣賽區很快就會採用DOMjudge作為競賽平台。
比賽消息
ACM-ICPC亞洲區指導員:http://icpcasia.blogspot.com/ 台灣ACM-ICPC協會:ACM-ICPC Contest Council for Taiwan 歷年比賽題目:ACM-ICPC Live Archive
相關報導
2002/5 Cheers雜誌: 寫程式不如賣香雞排? http://www.cheers.com.tw/doc/print.jspx?id=402881e8134e403a01134e43e2bb0433 2002/5 Cheers雜誌: 台灣不能輸在起跑點上! http://www.cheers.com.tw/doc/page.jspx?id=402881e8134e403a01134e43e3950434 2006/6 商業週刊: 台灣科技島美名,靠三個台大學生撐著 http://www.businessweekly.com.tw/webarticle.php?id=22775 2009/3 癮科技: 台大資工系ACM比賽團隊專訪 http://chinese.engadget.com/2009/03/16/interview-acm-contest-team-in-ntu/ 2009/11 ACM-ICPC亞洲區指導員: 世程賽的啟示 http://blog.roodo.com/cjblog/archives/10868327.html 2010/2 中國時報: 「2010程式設計奧運」台大奪第3 上海交大第1 莫斯科州立大學第2 http://www.edtung.com/TopNews/NewsContent.aspx?type=8&no=975
Google Code Jam
對象:一般大眾 水準:★★★ 時期:4月~7月 主辦:往年是由Google與TopCoder合作舉辦,2008年開始由Google自己主導。
這是近幾年才興起的演算法程式設計線上比賽。提供優勝者優渥的獎金,以及參訪公司的機會,以及免費午餐宴會。成績優異者也很有可能被挖掘進入Google公司工作唷!
TopCoder Open
對象:一般大眾 水準:★★★ 時期:4月~8月 主辦:TopCoder
TopCoder一年一度的公開賽,比賽項目相當多元,其中一個項目是演算法競賽。TopCoder Open已經舉辦了好幾屆,是世界聞名的賽事。
Facebook Hacker Cup
對象:一般大眾 水準:★★ 時期:1月~2月 主辦:Facebook
2011年才興起的比賽,性質與Google Code Jam相同。取名為Hacker Cup恐怕只是為引人耳目,實際上與資訊安全完全無關。
Internet Problem Solving Contest
對象:一般大眾 水準:★★ 時期:5~6月
解決一些稀奇古怪問題的比賽。
對象:高中學生 水準:★ 時期:11~12月 主辦:教育部針對全國高中生所舉辦的資訊能力競賽 承辦:由清華大學與交通大學輪流辦理
首先會在各縣市、各區域舉辦初賽,成績優異者得參加全國總決賽。
以往的比賽內容是資訊學科的基本知識,加上基礎程式設計;但是近年來卻有演算法競賽化的趨勢。
網際網路程式設計全國大賽
縮寫:NPSC 對象:高中學生、國中學生 水準:★★ 時期:11~12月 主辦:國家科學委員會針對全國高中生所舉辦的演算法程式設計能力競賽 承辦:台灣大學
獎品相當豐厚的比賽。比賽題目亦相當有特色。網路上亦有專門的討論區「NPSC補完計劃」。