歷史背景 ACM國際大學生程式設計競賽的歷史可以上溯到1970年,當時在美國
德克薩斯A&M大學 舉辦了首屆比賽。當時的主辦方是the Alpha Chapter of the UPE Computer Science Honor Society。作為一種全新的發現和培養計算機科學頂尖學生的方式,競賽很快得到美國和加拿大各大學的積極回響。1977年,在ACM計算機科學會議期間舉辦了首次總決賽,並演變成為一年一屆的多國參與的國際性比賽。
最初幾屆比賽的參賽隊伍主要來自美國和加拿大,後來逐漸發展成為一項世界範圍內的競賽。特別是自1997年IBM開始贊助賽事之後,賽事規模增長迅速。1997年,總共有來自560所大學的840支隊伍參加比賽。而到了2004年,這一數字迅速增加到840所大學的4109支隊伍並以每年10-20%的速度在增長。
在賽事的早期,冠軍多為美國和
加拿大 的大學獲得。而進入1990年代後期以來,俄羅斯和其它一些東歐國家的大學連奪數次冠軍。來自中國大陸的
上海交通大學 代表隊則在2002年
美國夏威夷 的第26屆、2005年上海的第29屆和2010在哈爾濱的第34屆的全球總決賽上三奪冠軍,浙江大學參賽隊在美國當地時間2011年5月30下午2時結束的第35屆ACM國際大學生程式設計競賽全球總決賽榮獲全球總冠軍,成為除上海交通大學之外唯一獲得ACM國際大學生程式設計競賽全球總決賽冠軍的亞洲高校。這也是目前為止亞洲大學在該競賽上取得的最好成績。賽事的競爭格局已經由最初的北美大學一枝獨秀演變成當前的亞歐對抗局面。
2015年全球總決賽,聖彼得堡國立資訊科技、機械與光學大學AC了所有題目(13道),成為了ACM-ICPC歷史上第一支在全球總決賽中AK的隊伍,也成為了歷史上獲得ACM-ICPC全球總決賽冠軍次數最多(6次)的隊伍,這一表現,被當場比賽主持人稱作the best of best of best。
2015年ACM-ICPC全球總決賽開幕式現場 2018年4月,ACM-ICPC在中國北京舉行,由北京大學承辦,最終北京大學最後時候完成G題奪得金牌。
簡要規則 ACM-ICPC 以團隊的形式代表各學校參賽,每隊由至多3名隊員組成。每位隊員必須是在校學生,有一定的年齡限制,並且每年最多可以參加2站區域選拔賽。
比賽期間,每隊使用1台電腦需要在5個小時內使用C/C++、Java和Python中的一種編寫程式解決7到13個問題。程式完成之後提交裁判運行,運行的結果會判定為正確或錯誤兩種並及時通知參賽隊。而且有趣的是每隊在正確完成一題後,組織者將在其位置上升起一隻代表該題顏色的氣球,每道題目第一支解決掉它的隊還會額外獲得一個“FIRST PROBLEM SOLVED”的氣球。
特殊榮譽氣球 最後的獲勝者為正確解答題目最多且總用時最少的隊伍。每道試題用時將從競賽開始到試題解答被判定為正確為止,其間每一次提交運行結果被判錯誤的話將被加罰20分鐘時間,未正確解答的試題不記時。
與其它電腦程式競賽(例如
國際信息學奧林匹克 ,IOI)相比,ACM-ICPC的特點在於其題量大,每隊需要在5小時內完成7道或以上的題目。另外,一支隊伍3名隊員卻只有1台電腦,使得時間顯得更為緊張。因此除了紮實的專業水平,良好的團隊協作和心理素質同樣是獲勝的關鍵。
競賽特點 1.參賽隊伍最多由三名參賽隊員組成。
大賽現場 2.競賽中命題10題左右,試題描述為英文,比賽時間為5個小時,前四個小時可以實時看到排名,最後一小時封榜,無法看到排名。
3.競賽可以使用的語言:Java, C, C++, Kotlin 和
Python 。
4.重點考察選手的算法和程式設計能力,不考察實際工程中常用的系統編程,多執行緒編程等等;
5.選手可攜帶任何非電子類資料,包括書籍和列印出來的程式等,部分賽區會對選手攜帶的紙質資料做限制。
6.評審負責將結果(正確或出錯的類型)通過網路儘快返回給選手,除此之外不提供任何額外幫助;
7.每個題目對應一種顏色的氣球,通過該題目的隊伍會得到對應顏色氣球。每道題目第一支解決掉它的隊還會額外獲得一個“FIRST PROBLEM SOLVED”的氣球。
賽事構成 賽事由各大洲區域預賽和全球總決賽兩個階段組成。決賽安排在每年的3-5月舉行,而區域預賽一般安排在上一年的9-12月舉行。原則上一個大學在一站區域預賽最多可以有3支隊伍,但只能有一支隊伍參加全球總決賽。
北京交通大學隊和ICPC主席Bill Poucher合影 入圍世界總決賽名額(WF Slots)分為參與名額(Participation Slots)、獎牌名額(Medal Bonus Slots)和其他紅利名額(Other Bonus Slots)三類。其中參與名額是從ICPC總部分配給各大洲區的參與名額(ParticipationSlots)中,由各大洲洲區主席確定並分配給洲子賽區的部分,其中各預賽區第一名自動獲得參加全球總決賽的資格;獎牌名額是ICPC總部根據上一年度總決賽結果直接分配給獲得獎牌的特定學校的名額;其他紅利名額是各大洲區主席從ICPC總部爭取到的額外獎勵名額。
全球總決賽第一名將獲得獎盃一座。另外,成績靠前的參賽隊伍也將獲得金、銀和銅牌。而解題數在中等以下的隊伍會得到確認但不會進行排名。
評分標準 競賽進行5個小時,一般有7道或以上試題,由同隊的三名選手使用同一台計算機協作完成。當解決了一道試題之後,將其提交給評審,由評審判斷其是否正確。若提交的程式運行不正確,則該程式將被退回給參賽隊,參賽隊可以進行修改後再一次提交該問題。程式判定結果有如下7種:
1、Accepted. ——通過!(AC)
中國選手賽照 2、Wrong Answer.——答案錯。(WA)
3、Runtime Error.——程式運行出錯,意外終止等。(RE)
4、Time Limit Exceeded. ——逾時。程式沒在規定時間內出答案。(TLE)
5、Presentation Error. ——格式錯。程式沒按規定的格式輸出答案。(PE)
6、Memory Limit Exceeded. ——超記憶體。程式沒在規定空間內出答案。(MLE)
7、Compile Error. ——編譯錯。程式編譯不過。(CE)
競賽結束後,參賽各隊以解出問題的多少進行排名,若解出問題數相同,按照總用時的長短排名。總用時為每個解決了的問題所用時間之和。一個解決了的問題所用的時間是競賽開始到提交被接受的時間加上該問題的罰時(每次提交通不過,罰時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隊以總用時少而獲勝。美國英語為競賽的工作語言。競賽的所有書面材料(包括試題)將用美國英語寫出,區域競賽中可以使用其它語言。總決賽可以使用的
程式設計語言 包括
pascal ,c,
c++ 及java,也可以使用其它語言。具體的作業系統及語言版本各年有所不同。
獎勵情況 區域賽一般分別按10%,20%,30%的比例頒發金,銀,銅獎,即一般情況(120隊伍)有12支隊伍獲金牌,24支隊伍獲銀牌,36支隊伍獲銅牌,其餘為優勝獎。
2010年亞洲區域賽中國大陸5大賽區由阿里巴巴公司贊助,獲得金牌的選手可以享受綠色通道,進入阿里巴巴實習或參加工作。
2012年亞洲區域賽中國大陸5大賽區由華為公司贊助,有獎金(冠5000、亞3000、季2000,非冠亞季的金牌1200,FB(First Blood,指全場第一個解答出某道題) 800,最佳女隊800,頑強拼搏500)。頑強拼搏是全場最後一個AC,且只AC1道題的隊伍。
總決賽前十名的隊伍將得到高額獎學金:第一名獎金為12000美元,第二名獎金為6000美元,第三名獎金為3000美元,第四名至第十名將各得到1500美元。除此之外還將承認北美冠軍、歐洲冠軍、
南太平洋 冠軍及亞洲冠軍。
賽事意義 競賽規定每支參賽隊伍至多由三名在校大學生組成,他們需要在規定的五個小時內解決八個或更多的複雜實際編程問題。每隊使用一台電腦,參賽者爭分奪秒,與其他參賽隊伍拼比邏輯、策略和心理素質。
頭腦風暴 團隊成員將在多名專家裁判的嚴格督察下通力合作,對問題進行難度分級、推斷出要求、設計測試平台並構建軟體系統,最終成功地解決問題。對於一名精通計算機科學的學生而言,有些問題只是精確度的問題;而有些則需要學生了解並掌握高級算法;還有一些問題是普通學生無法解決的,不過對於那些最優秀的學生而言,這一切都不在話下。
競賽的評判過程十分嚴格。我們分發給學生的是問題陳述,而不是要求須知。他們會收到一個測試數據實例,但無法獲得裁判的測試數據和接受標準方面的信息。若每次提交的解決方案出現錯誤,就會受到加時懲罰。畢竟,在處理頂級計算問題時,誰也不想浪費客戶的時間。在最短的累計時間內,提交次數最少、解決問題最多的隊伍就是最後的勝利者。
在IBM開展的眾多學術活動中,贊助ACM-ICPC賽事占有十分重要的位置。此舉旨在促進開放原始碼編程技巧的發展,培養更具競爭力的IT工作人員,從而推動全球創新和經濟成長。
ACM-ICPC大賽是一項旨在展示大學生創新能力、團隊精神和在壓力下編寫程式、分析和解決問題能力的年度競賽。
ACM簡介 ACM (國際計算機學會)是一家科教性質的協會,旨在聯合全球計算機領域的教學人員、研究人員和從業人員,開展行業交流活動、
共享資源 和解決業界難題。憑藉絕對的領導地位,ACM始終致力於推行最高行業標準,表彰傑出技術人才,加強計算機行業的整體隊伍建設。ACM通過為成員提供終生學習、職業發展及與專業人士聯誼的機會,支持其在各自的專業領域取得長足進步。
IBM的承諾 歷屆冠軍 1977年以來歷年全球總決賽的冠軍:
年份 總決賽地點 冠軍大學 國家 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年
美國
中國賽區 亞洲區預選賽 ACM國家大學生競賽自1996年起設立中國大陸地區預選賽賽區,並由
上海大學 承辦,至2001年總決賽止,連續舉辦五屆。之後在境內設定多個賽點,由各大學輪流主辦地區性競賽至今。
歷年中國大陸舉辦區域賽地點:
年份 1996年
1997年
1998年
1999年
2000年
2001年
2002年
2003年
2004年
2005年
2006年
2007年
2008年
2009年
2010年
2011年
2012年
2013年
2014年
2015年
世界總決賽 由
上海交通大學 承辦的第29屆ACM國際大學生程式設計競賽全球總決賽於2005年4月3-7日期間在上海浦東的香格里拉酒店舉行。總共有78支隊伍參加總決賽的角逐,它們是從來自6大洲71個國家1582所大學的4109支隊伍中通過之前的各級區域預賽中脫穎而出的。在當地時間4月6日上午舉行的全球總決賽上,東道主上海交通大學代表隊是所有參賽隊伍中唯一一支解出8道題目的隊伍,從而在時隔3年之後第二次奪得全球總冠軍。
由
哈爾濱工程大學 承辦的第34屆ACM國際大學生程式設計競賽全球總決賽於2010年2月在哈爾濱舉行,上海交通大學再次奪冠。
2018年3月26日,方正集團贊助北京大學ACM-ICPC(
國際大學生程式設計競賽 )全球總決賽捐贈儀式在北京大學舉行。方正集團、北京大學信息科學技術學院與北京大學教育基金會簽署了捐贈協定,北京大學副校長王仰麟向方正集團頒發了“北京大學傑出教育貢獻獎”。
2018年,北京大學將迎來120周年校慶。作為校慶活動之一,北京大學將舉辦第42屆國際大學生程式設計競賽全球總決賽,以此推動計算機教育在中國的普及,激發更多學生學習計算機的熱情,為國家人工智慧戰略培養和輸送更優質的後備人才。今年,和北京大學有著深厚淵源的方正集團首次作為全球鑽石贊助商參與這項國際賽事。方正集團成為全球鑽石贊助商,使得賽事的承辦工作有了堅實的保障。