國際大學生程式設計競賽

全球競爭性大學生編程競賽

國際大學生程式設計競賽(英語:International Collegiate Programming Contest,縮寫:ICPC),舊稱ACM競賽,是一項旨在展示大學生創新能力、團隊精神和在壓力下編寫程式、分析和解決問題能力的年度競賽。經過50多年的發展,國際大學生程式設計競賽已經發展成為最具影響力的大學生電腦競賽。賽事由ICPC基金會頁面存檔備份,存於互聯網檔案館)(ICPC Foundation)舉辦。賽事之前僅由IBM公司贊助,2017年新增JetBrains公司贊助[1],2018年起,美國電腦協會(ACM)不再贊助ICPC,但仍然有許多人習慣稱這個賽事為ACM-ICPC競賽。

國際大學生程式設計競賽標誌

歷史

競賽的歷史可以上溯到1970年,當時在美國德克薩斯A&M大學舉辦了首屆比賽。當時的主辦方是the Alpha Chapter of the UPE Computer Science Honor Society。作為一種全新的發現和培養電腦科學頂尖學生的方式,競賽很快得到美國加拿大各大學的積極響應。1977年,在ACM電腦科學會議期間舉辦了首次總決賽,並演變成為目前的一年一屆的多國參與的國際性比賽。迄今已經舉辦了35屆。

最初幾屆比賽的參賽隊伍主要來自美國和加拿大,後來逐漸發展成為一項世界範圍內的競賽。特別是自1997年IBM開始贊助賽事之後,賽事規模增長迅速。1997年,總共有來自560所大學的840支隊伍參加比賽。而到了2004年,這一數字迅速增加到840所大學的4109支隊伍並以每年10-20%的速度在增長。

1980年代,ICPC的總部改設在位於美國德克薩斯州貝勒大學

在賽事的早期,冠軍多為美國和加拿大的大學獲得。而進入1990年代後期以來, 俄羅斯和其它一些東歐國家的大學連奪數次冠軍。來自中國大陸上海交通大學代表隊則在2002年美國夏威夷的第26屆、2005年上海的第29屆以及2010年哈爾濱的第34屆全球總決賽上三次獲得冠軍。這也是目前為止亞洲大學在該競賽上取得的最好成績。賽事的競爭格局已經由最初的北美大學一枝獨秀演變成目前的對抗的局面。

簡要規則

ICPC以團隊的形式代表各學校參賽,每隊由3名隊員組成。[2]

比賽期間,每隊使用1台電腦需要在5個小時內使用 JavaCC++KotlinPython 中的一種編寫程式解決8到13個問題。程式完成之後提交裁判執行,執行的結果會判定為"AC(答案正確)/WA(答案錯誤)/TLE(超出時間限制)/MLE(超出主記憶體限制)/RE(執行錯誤)/PE(格式錯誤)"中的一種並及時通知參賽隊。每隊在正確完成一題後,組織者將在其位置上升起一隻代表該題顏色的氣球

最後的獲勝者為正確解答題目最多且總用時最少的隊伍。每道試題用時將從競賽開始到試題解答被判定為正確為止,其間每一次提交執行結果被判錯誤的話將被加罰20分鐘時間,未正確解答的試題不記時。例如:A、B兩隊都正確完成兩道題目,其中A隊提交這兩題的時間分別是比賽開始後1:00和2:45,B隊為1:20和2:00,但B隊有一題提交了2次。這樣A隊的總用時為1:00+2:45=3:45而B隊為1:20+2:00+0:20=3:40,所以B隊以總用時少而獲勝。

與其它電腦程式競賽(例如國際資訊科學奧林匹克,IOI)相比,ICPC的特點在於其為3人團隊作戰且題量大,每隊需要5小時內完成8道題目,甚至更多。除此之外,一支隊伍有3名隊員卻只有1台電腦,使得時間顯得更為緊張。因此除了紮實的編程能力,良好的團隊協同運作和心理素質同樣是獲勝的關鍵。

區域和全球決賽

賽事由各大洲區域預賽(regional)和全球總決賽(worldfinal)兩個主要階段組成。根據各賽區規則,每站前若干名的學校自動獲得參加全球總決賽的資格。決賽安排在每年的3-4月舉行,而區域預賽一般安排在上一年的9-12月舉行。一個大學可以有多支隊伍參加區域預賽,但只能有一支隊伍參加全球總決賽。

全球總決賽第一名將獲得獎盃一座。另外,成績靠前的參賽隊伍也將獲得銅牌。而解題數在中等以下的隊伍會得到確認但不會進行排名。

歷屆冠軍

下面列出自1977年以來,歷年全球總決賽的冠軍:

年份 總決賽地點 冠軍大學 國家
2024年 埃及盧克索 高等經濟大學 俄羅斯
2024年 埃及盧克索 北京大學 中國
2022年 孟加拉達卡 麻省理工學院 美國
2020年 俄羅斯莫斯科 下諾夫哥羅德州立大學英語N. I. Lobachevsky State University of Nizhny Novgorod 俄羅斯
2019年 葡萄牙波爾圖 莫斯科大學 俄羅斯
2018年 中國北京 莫斯科大學 俄羅斯
2017年 美國拉皮德城 聖彼得堡國立資訊科技、機械與光學大學 俄羅斯
2016年 泰國普吉島 聖彼得堡國立大學 俄羅斯
2015年 摩洛哥馬拉喀什 聖彼得堡國立資訊科技、機械與光學大學 俄羅斯
2014年 俄羅斯葉卡特琳堡 聖彼得堡國立大學 俄羅斯
2013年 俄羅斯聖彼得堡 聖彼得堡國立資訊科技、機械與光學大學 俄羅斯
2012年 波蘭華沙 聖彼得堡國立資訊科技、機械與光學大學 俄羅斯
2011年 美國奧蘭多 浙江大學 中國
2010年 中國哈爾濱 上海交通大學 中國
2009年 瑞典斯德哥爾摩 聖彼得堡國立資訊科技、機械與光學大學 俄羅斯
2008年 加拿大班夫 聖彼得堡國立資訊科技、機械與光學大學 俄羅斯
2007年 日本東京 華沙大學 波蘭
2006年 美國德克薩斯州 薩拉托夫國立大學 俄羅斯
2005年 中國上海 上海交通大學 中國
2004年 捷克布拉格 聖彼得堡國立資訊科技、機械與光學大學 俄羅斯
2003年 美國洛杉磯 華沙大學 波蘭
2002年 美國夏威夷 上海交通大學 中國
2001年 加拿大溫哥華 聖彼得堡國立大學 俄羅斯
2000年 美國奧蘭多 聖彼得堡國立大學 俄羅斯
1999年 荷蘭埃因霍溫 滑鐵盧大學 加拿大
1998年 美國亞特蘭大 布拉格查理大學 捷克
1997年 美國聖荷西 哈維穆德大學 美國
1996年 美國費城 加州大學柏克萊分校 美國
1995年 美國納什維爾 弗賴堡大學 德國
1994年 美國菲尼克斯 滑鐵盧大學 加拿大
1993年 美國印第安納波利斯 哈佛大學 美國
1992年 美國堪薩斯城 墨爾本大學 澳大利亞
1991年 美國聖安東尼奧 史丹福大學 美國
1990年 美國華盛頓 奧塔哥大學 新西蘭
1989年 美國路易斯維爾 加州大學洛杉磯分校 美國
1988年 美國亞特蘭大 加州理工學院 美國
1987年 美國聖路易斯 史丹福大學 美國
1986年 美國辛辛那提 加州理工學院 美國
1985年 美國新奧爾良 史丹福大學 美國
1984年 美國費城 約翰霍普金斯大學 美國
1983年 美國墨爾本 內布拉斯加大學 美國
1982年 美國印第安納波利斯 貝勒大學 美國
1981年 美國聖路易斯 密蘇里科技大學 美國
1980年 美國堪薩斯城 華盛頓大學聖路易斯分校 美國
1979年 美國代頓 華盛頓大學聖路易斯分校 美國
1978年 美國底特律 麻省理工學院 美國
1977年 美國亞特蘭大 密歇根州立大學 美國

在中國的比賽

亞洲區預選賽

國際大學生程式設計競賽自1996年起設立中國大陸地區預選賽賽區,並由上海大學承辦,至2001年總決賽止,連續舉辦五屆。之後在境內設置多個賽點,由各大學輪流主辦地區性競賽至今。

歷年中國大陸舉辦地點[3][4]

年份
1996年 上海大學
1997年 上海大學
1998年 上海大學
1999年 上海大學
2000年 上海大學
2001年 上海大學
2002年 清華大學 西安交通大學
2003年 清華大學 中山大學
2004年 上海交通大學 北京大學
2005年 四川大學 北京大學 浙江大學
2006年 上海大學 清華大學 西安電子科技大學
2007年 西華大學 南京航空航天大學 北京航空航天大學 吉林大學
2008年 中國科學技術大學 北京交通大學 哈爾濱工程大學 杭州電子科技大學 西南民族大學
2009年 浙江大學寧波理工學院 中國科學技術大學 東華大學 哈爾濱工業大學 武漢大學
2010年 哈爾濱工程大學 天津大學 四川大學 浙江理工大學 福州大學
2011年 大連理工大學 復旦大學 北京郵電大學 成都東軟學院 福建師範大學
2012年 東北師範大學 天津理工大學 浙江師範大學 浙江理工大學 成都東軟學院
2013年 電子科技大學 浙江工業大學 南京理工大學 湖南大學 吉林大學
2014年 牡丹江師範學院 遼寧科技大學 西北工業大學 北京師範大學 華南理工大學 上海大學
2015年 東北大學 東北師範大學 北京大學 中國科學技術大學 華東理工大學 上海大學(決賽)
2016年 大連海事大學 東北大學 北京大學 中國石油大學(華東) 上海大學(決賽)
2017年 新疆大學 東北大學 西北工業大學 中國石油大學(華東) 北京大學 廣西大學 香港理工大學 上海大學(決賽)
2018年 東北大學 南京航空航天大學 中國礦業大學 河南理工大學 北京大學 中國石油大學(華東) 香港城市大學 西北工業大學(決賽)

世界總決賽

上海交通大學承辦的第29屆國際大學生程式設計競賽全球總決賽於2005年4月3-7日期間在上海浦東的香格里拉酒店舉行。總共有78支隊伍參加總決賽的角逐,它們是從來自6大71個國家1582所大學的4109支隊伍中通過之前的各級區域預賽中脫穎而出的。在當地時間4月6日上午舉行的全球總決賽上,東道主上海交通大學代表隊是所有參賽隊伍中唯一一支解出8道題目的隊伍,從而在時隔3年之後第二次奪得全球總冠軍。

哈爾濱工程大學承辦的第34屆國際大學生程式設計競賽全球總決賽於2010年2月在哈爾濱舉行,上海交通大學再次奪冠。

參考文獻

  1. ^ JetBrains. JetBrains to support the ACM-ICPC. blog.jetbrains.com. 2017-03-23 [2017-10-04]. (原始內容存檔於2017-10-05) (美國英語). 
  2. ^ [1]頁面存檔備份,存於互聯網檔案館) 每位隊員必須是在校學生,有一定的年齡限制,並且最多可以參加2次全球總決賽和5次區域選拔賽。
  3. ^ User, Super. 亚洲赛站. acmicpc.cn. [2017-05-26]. (原始內容存檔於2017-06-06) (中文(中國大陸)). 
  4. ^ Asia East Continent Contests. icpc.baylor.edu. [2020-03-03]. (原始內容存檔於2020-03-03). 

外部連結

評測網站

參見

  • TopCoder,一項類似的在互聯網上進行的比賽。
  • PC2,曾採用的跨平台的評測系統,早於Kattis