國際大學生程序設計競賽的一些介紹_風聞
四有青年-2019-04-06 08:18
看見風聞社區裏有人把4號結束的國際大學生程序設計競賽介紹了一下,我也來補充一下這個比賽的一些歷史,規則等。以下國際大學生程序設計競賽簡稱icpc,由於這個比賽一開始是由ACM(國際計算機協會)贊助的,所以有時候也稱為acm競賽。但是在去年開始,ACM不再贊助本比賽,這裏不再過多解釋。
這次比賽我國未有一個大學獲獎,這也差不多是這幾年的最差成績了。總決賽每年參賽隊伍大概在130只左右。評獎只有前12名有獎牌,分別頒發金牌,銀牌,銅牌。2018年比賽中獲得了一金兩銀。分別是北京大學獲得了金牌,清華大學,上海大學獲得了銀牌。2017年則是三枚銀牌,分別是北京大學,清華大學,復旦大學。2016年則是獲得了一金一銅。分別是清華大學獲得了金牌,復旦大學獲得了銅牌。
以下是我在網絡上找到的截止至去年的我國各高校參賽統計

實際上,除了全球總決賽,賽事由各大洲區域預賽和全球總決賽兩個階段組成,在中國區域預賽則是一般有7個區域預賽區。以18年為例,7個賽區分別在南京,瀋陽,徐州,焦作,青島,北京,香港。以下是我節選自百度百科的歷年中國大陸舉辦區域賽地點:

可以看見,我國承辦區預賽的大學數量在逐年增長
而在區預賽和全球總決賽之間,還有一個 East Continent League Final,可以看作中國總決賽(大概,不是很清楚,去年的這個比賽也因為參賽規則鬧了好大一陣,逃)亞洲區預賽和全球總決賽之間有一個最大的差異就在於,區預賽頒獎比例為10%的隊伍獲得金獎,20%的隊伍獲得銀獎,30%的隊伍獲得銅獎。也就是説只要去參賽,前60%的隊伍都能獲獎。看起來獲獎非常容易,但是實際上還是有一定困難的,原因下面我再解釋。
好了,以上是關於icpc賽制的一些介紹。這次全球總決賽沒有獲獎,對我們最大的影響是會造成明年全球總決賽中國大學的出線名額會變少。因為全球總決賽的參賽名額除了底下的各個區預賽晉級以外,還會根據去年全球總決賽獲獎來分配額外的獎勵名額。其他體制,政策上的影響我不發表觀點。
接下來我來解釋一下這項競賽的高投入性,也就是為什麼獲獎這麼困難。以18年區預賽為例,大的賽區,比如青島可以容納300只隊伍,而小的賽區可能只能容納120只隊伍,雖然在名額髮放競爭上強校更有優勢,但是一個學校一個區預賽最多隻能派出三隻隊伍。這樣弱校參賽的機會就變大了。這也就意味着大賽區更容易獲獎,畢竟參賽隊伍越多,獎牌數量也越多。
比如我去年參加的是焦作站的區預賽,一共有180只參賽隊伍。而中國目前有755所普通本科院校。我校作為一個雙非普通一本一共有兩個參賽名額,一個是網絡賽晉級獲得,另一個是作為省賽舉辦方獲得的一個獎勵名額。大部分學校基本都是這種情況,一場區預賽就派出一到兩隻隊伍,甚至如果網絡賽沒有出線,那麼也就意味着某一場區預賽一個大學根本沒有參賽資格。所以綜上所訴,一場區預賽裏的參賽選手絕大部分都至少是一本學校的學生,基本上是985,211,又或者稱雙一流大學。並且由於參賽名額的珍貴,這也意味着對參賽選手也是需要通過校內競爭的。最終,你面對的就是各大高校層層選拔出來的頂尖選手。
那麼我們再回到校內選拔。由於icpc賽制的特殊性,他註定了不是一項短期投入就能獲獎的比賽。每一位獲獎選手的背後都是無數的心血與汗水。在這裏由於見識原因我只能向你們介紹本弱校的培養方案。直接用數據來説明。每年我校在計算機學院招生大概在600人左右。這600人絕大部分剛進學校是基本對電腦知識毫無瞭解的那種。但是icpc競賽是需要c語言來編程的,並且不只是書本上的知識的程度,需要大量的練習。但是等學校教完c語言,已經大一下學期了。於是我們的競賽團隊逐年就形成了在國慶7天給大一新生免費培訓C語言的一個訓練營。這7天是怎麼訓練的呢,用互聯網的一個數字來形容,那就是966.每天機房9點鐘開門,一直開到下午6點,持續6天。如果這一天講的東西沒聽懂,那麼晚上回去只能自己再加班慢慢弄懂,不懂的還有學長在線上答疑。在這裏真的很感謝上一屆的學長們,他們願意犧牲自己的國慶假期來培訓我們。而作為一個可以有效提高學生編程能力的活動,學院也是給了我們很大的支持,除了給我們安排專門的時間地點舉辦宣講會,還有各系輔導員會向學生宣傳我們團隊以及國慶期間安排電腦機房給我們。那麼這一系列流程下來,最終我們的競賽團隊每年的招新羣羣人數在400人以上。大部分人還是願意加羣瞭解一下我們的團隊。而這400人蔘加國慶7天C語言訓練營的人數大概每年在200人左右。而在這7天每天都有人員流失,由一開始的三個機房,變成兩個機房,再變成一個機房。在這7天的最後一天,我們會舉辦一個C語言的招新比賽,賽制也是像真正的icpc一樣。而參加這個比賽的人數大概有60人。然後我們會挑選出20名同學初選進入競賽團體。這20人經過一年的培訓、換血,最終團隊人數會在9-12人左右。而強校的團隊人數會多一些,有的甚至高達30人,畢竟生源差距非常大。
再來説説日常訓練,本弱校的訓練基本上只能維持每週一次的集中培訓,老同學向新同學集中講授一個算法專題,然後新同學在培訓完以後這一週的時間自己慢慢消化這個算法專題。我看過一些大牛的博客記錄,他們的訓練基本都是除了上課時間基本都在訓練室做訓練題,一週的訓練量可以頂的上我們兩到三倍。除了日常訓練,還有暑期特訓,包括由杭州電子科技大學發起的暑期多校訓練營,去年開始牛客網也效仿舉辦了自己的多校訓練。暑期多校訓練營也是像icpc賽制一樣舉辦的線上比賽,由於各大高校都在參與,所以基本上在線上排名可以反映出自己學校在這方面的成績。大一大二兩個暑假我們基本都是在學校度過的。聽説某些強校甚至還有寒假特訓,差不多過年隊員才能回家。
整個流程實際上簡化下來更像是一場吃雞遊戲,開始大家飛機上下來兩手空空,有的人在弱校獲得的資源就少一點,有的人在強校獲得的資源就多一點。從自己學校拼殺出來,而最終大家競技的舞台都是一樣的。相信每一位ACMer都不會忘記自己的這一份競賽經歷。


ps:icpc現在還有低齡版簡稱oi全稱信息學奧林匹克競賽非常適合中小學生參與玩耍,不過由於目前的減負政策(逃

