用汗水與堅持澆灌出的金牌我院選手首獲ACM/ICPC亞洲賽區(qū)區(qū)域賽金牌的背后
在今年的第40屆ACM國際大學生程序設計競賽中,來自計算學院計算1302班的李恭榮同學、計算1204班的王遼豐同學和軟件1502班的顏姜哲同學在海選中脫穎而出,獲得了參與亞洲賽區(qū)北京區(qū)域賽的資格,并一路凱歌高奏為學院斬獲了有史以來的第一枚金牌。這支隊伍也在區(qū)域賽中的200多支隊伍中取得了學校排名第8、隊伍排名12的成績,是學院派出隊伍參與ACM程序設計競賽以來獲得的最佳成績。
冷靜從容,方能運籌帷幄ACM競賽比賽時間為5個小時,至少命題6題,至多命題10題。在五個小時急迫的時間里,面對著流逝的時間,隊員們不僅要快速地對題目進行分析解答,更要時刻保持一顆冷靜的心?!懊拷M的電腦只有一臺,時間又十分緊迫,所以我們三人都有各自明確的分工,當一人在用電腦編寫時,另外兩個人會對下一題目進行解析,有的時候一題編寫完后另外一題的解法也想出來了?!鳖伣芡瑢W如是說。
本次的突破主要在于最后關鍵的兩題。李恭榮曾經在大二的時候參加過亞洲賽區(qū)上海站點的比賽,然而題目比較難,沒能拿到獎牌略有遺憾。在本屆比賽上,李恭榮吸取了上次的經驗,快刀斬亂麻,先解決了簡單的題目,然而在關鍵的兩道題目上,隊伍還是遇到了困難。此時,大一的新援顏姜哲起到了奇兵的作用,“這些題目本質上還是數(shù)學題,而數(shù)學題有著一定規(guī)律性?!庇谑牵诘箶?shù)第二題的時候,顏姜哲通過在數(shù)字范圍內猜測了一個數(shù)字代入題目內,意外地發(fā)現(xiàn)了可行性,成功得到了正確的答案。最后一道是關于函數(shù)的問題,且留給最后一題的時間只有半個小時,在思路漸漸枯竭的時候,隊員們化繁入簡,在草稿紙上進行了基礎的通項公式以后,得到了以往在題海里掙扎而熟悉的求生之道。終于在最后一分鐘時,小組成員們齊心協(xié)力得到了成功的答案。
面對這樣高強度的賽制要求和題目,仍保持了冷靜的頭腦,這都要歸功于平時的訓練。正是因為在ACM實驗室里大家不僅完成了老師布置的練習,也自覺地補充更多的知識,完成任務以外的更多編寫題目,才能夠在比賽時候有條不紊,沉著冷靜。
強度訓練,做到厚積薄發(fā)“每個星期老師都有一套題目發(fā)放在平臺上,需要在一個星期內完成。且老師每次會負責制定訓練計劃,然而師父領進門,修行在個人。除此之外,自己還需要加練。”李恭榮說。平時,他們需要在固定時間段內不停歇地做題,且實施一定的分享制度。若有人成功解決某道難題時,就會把題目的解法分享給大家。在平時訓練題目中,會有各類題目,需要自己去寫去做,通過大量的題型訓練方能做到百戰(zhàn)不殆。大一新生顏姜哲表示,“在平時練習中,大家的上課時間會有沖突,但是我們可以相互理解,在準備中、在比賽中相互分享與幫助?!?br> 除此以外,他們還有一套暑假的集訓。時間從7月15日開始,到8月20日結束,整整一個多月時間,沒有休息。個人賽的集訓是和浙大一起集訓的,李恭榮表示這讓他們有了很好的鍛煉機會。從每天早上八點半開始直到中午十二點半結束,偶爾遇到比賽延遲的情況要等到下午一點或者更晚結束。結束之后還會探討一下題解,交換一下思路,因為只有這樣,才能夠得到在每場比賽中都得到進步。
個人賽的時候還有夾雜著一兩場杭州電子科技大學多校的比賽,杭電多校從中午12點到下午五點,一共五個小時。如果碰巧一天同時有浙大的比賽和杭電的比賽就要從早上八點打到下午五點。除此之外如果覺得自己的訓練強度還不夠,還會參加杭電舉辦的bestcoder以及在俄羅斯一個著名的程序設計競賽網站codeforces舉辦的比賽,bestcoder在每周六晚上舉行,而codeforces會不定期舉辦,由于時差的原因,經常是后半夜的比賽。如此的訓練強度使得大學剛接觸編程的李恭榮受益匪淺,對于題目的理解和掌握能力突飛猛進。
而大一的顏姜哲雖然沒有參與暑假集訓,但是他在之前就有著豐富的賽事經驗,初中參加過信息競賽獲得省一等獎;高中獲得全國銀獎,因而能夠與這支隊伍無縫銜接,三人也磨合得恰到好處,成功地實現(xiàn)了摘金的目標。
多方收獲,感受鮮美果實在ACM實驗室里扎根,雖然累,但也收獲滿滿。李恭榮覺得在實驗室寫代碼雖然比較辛勞,但是也是一個提升自己的好途徑?!扒玫拇a比別人多,時間比別人多,雖然在以后的工作上并不一定會派上用場,但是熟悉上手程度較其他人相比,依舊是一個優(yōu)勢。同時在實驗室內能夠找到一群志同道合的同伴們,是大學最美好的回憶?!崩罟s說道?!凹皶r當勉勵,歲月不待人”,如今已是大三學生的李恭榮決定還要繼續(xù)參加明年ACM/ICPC的省賽。談及以后的打算時,大四的王遼實事求是地給出了先找工作的答案,“是時候讓社會檢驗自己的知識啦?!?br> 學習實驗室之外,他們又如普通大學生一般,也有著諸如看電影、覓美食的愛好。他們的身姿時常活躍在操場上,他們的思維則在ACM實驗室中發(fā)散著?!霸贏CM實驗室里我的收獲不僅僅是在思維能力、知識學習上有所提高,這樣的練習更鍛煉了自己的定力??梢哉f,無論以后我想要做什么,這種定力都是成功的法寶?!鳖伣芡瑢W表達著自己對于ACM實驗室的熱愛。
小知識:ACM國際大學生程序設計競賽是由國際計算機界歷史悠久、頗具權威性的組織ACM(國際計算機協(xié)會)主辦的,世界上公認的規(guī)模最大、水平最高的國際大學生程序設計競賽,該項競賽分區(qū)域預賽和國際決賽兩個階段進行,各預賽區(qū)第一名自動獲得參加世界決賽的資格。
競賽中至少命題6題,至多命題10題,比賽時間為5個小時,試題的解答提交裁判稱為運行,每一次運行會被判為正確或者錯誤,判決結果會及時反饋給參賽隊伍。在決定獲獎和參加世界決賽的隊伍時,如果多支隊伍解題數(shù)量相同,則根據(jù)總用時加上懲罰時間進行排名,總用時和懲罰時間由每道解答正確的試題的用時加上懲罰時間而成。每道試題用時將從競賽開始到試題解答被判定為正確為止,期間每一次錯誤的運行將被加罰20分鐘時間,未正確解答的試題不記時,地區(qū)預賽可以使用的語言包括C/C++和Java,每支隊伍使用一臺計算機,所有隊伍使用計算機的規(guī)格配置完全相同。