國際大學生程序設計競賽

國際大學生程序設計競賽（International Collegiate Programming Contest，縮寫：ICPC），舊稱ACM競賽，是一項旨在展示大學生創新能力、團隊精神和在壓力下編寫程序、分析和解決問題能力的年度競賽。經過50多年的發展，國際大學生程序設計競賽已經發展成為最具影響力的大學生電腦競賽。賽事由 ICPC基金會 （ICPC Foundation）舉辦。賽事之前僅由IBM公司贊助，2017年新增JetBrains公司贊助，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名隊員組成。

比賽期間，每隊使用1台電腦需要在5個小時內使用 Java、C、C++、Kotlin 或 Python 中的一種編寫程序解決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年｜俄羅斯莫斯科｜下諾夫哥羅德州立大學｜俄羅斯

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年總決賽止，連續舉辦五屆。之後在境內設置多個賽點，由各大學輪流主辦地區性競賽至今。

歷年中國大陸舉辦地點：

年份｜舉辦大學

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月在哈爾濱舉行，上海交通大學再次奪冠。

## 外部連結

- 國際大學生程序設計競賽官方主頁（由貝勒大學維護）

## 參見

- TopCoder，一項類似的在網際網路上進行的比賽。
- PC2，曾採用的跨平台的評測系統，早於Kattis。