ICPC是由美國(guó)計(jì)算機(jī)協(xié)會(huì)(Association for Computing Machinery)于1970年發(fā)起組織的國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽(International Collegiate Programming Contest,簡(jiǎn)稱ICPC) ,是一項(xiàng)旨在展示大學(xué)生創(chuàng)新能力、團(tuán)隊(duì)精神和在壓力下編寫程序、分析和解決問題能力的年度競(jìng)賽。經(jīng)過近40多年的發(fā)展,國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽已經(jīng)發(fā)展成為最具影響力的大學(xué)生計(jì)算機(jī)競(jìng)賽,被譽(yù)為計(jì)算機(jī)軟件領(lǐng)域的奧林匹克競(jìng)賽。
ICPC賽事由各大洲區(qū)域賽(Regional)和全球總決賽(World Final)兩個(gè)主要階段組成。根據(jù)各賽區(qū)規(guī)則,每站前若干名的學(xué)校獲得參加全球總決賽的資格,決賽安排在每年的4-6月舉行,而區(qū)域賽一般安排在上一年的9-12月舉行。一個(gè)大學(xué)可以有多支隊(duì)伍參加區(qū)域預(yù)賽,但只能有一支隊(duì)伍參加全球總決賽。
比賽規(guī)則
ACM-ICPC以團(tuán)隊(duì)的形式代表各學(xué)校參賽,每隊(duì)由至多3名隊(duì)員組成。每位隊(duì)員必須是在校學(xué)生,有一定的年齡限制,并且每年最多可以參加2站區(qū)域選拔賽。
比賽期間,每隊(duì)使用1臺(tái)電腦需要在5個(gè)小時(shí)內(nèi)使用C/C++、Java和Python中的一種編寫程序解決7到13個(gè)問題。程序完成之后提交評(píng)測(cè)機(jī)運(yùn)行,運(yùn)行的結(jié)果會(huì)判定為正確或錯(cuò)誤兩種并及時(shí)通知參賽隊(duì)。
最后的獲勝者為正確解答題目最多且總用時(shí)最少的隊(duì)伍。每道試題用時(shí)將從競(jìng)賽開始到試題解答被判定為正確為止,其間每一次提交運(yùn)行結(jié)果被判錯(cuò)誤的話將被加罰20分鐘時(shí)間,未正確解答的試題不記時(shí)。
與其它計(jì)算機(jī)程序競(jìng)賽(例如國(guó)際信息學(xué)奧林匹克,IOI)相比,ACM-ICPC的特點(diǎn)在于其題量大,每隊(duì)需要在5小時(shí)內(nèi)完成7道或以上的題目。另外,一支隊(duì)伍3名隊(duì)員卻只有1臺(tái)電腦,使得時(shí)間顯得更為緊張。因此除了扎實(shí)的專業(yè)水平,良好的團(tuán)隊(duì)協(xié)作和心理素質(zhì)同樣是獲勝的關(guān)鍵。