@非典君
講起奧賽,這絕對是個暴露年齡的話題。在現在的孩子們再也不可能通過奧賽這樣的捷徑進入大學校門,甚至連自主招生都變得不再有意義的時候,我還是感到有點慶幸的。
故事要從初一開始講起。那時,我總想找點好玩的事情做——家裡的電腦被我拆了又裝,裝了又拆,早已沒有什麼新鮮感了,而對電腦遊戲,我又天生的不感冒。於是,我把目光投向了另一個看起來很有意思的事情——編程。這大概是因為曾讀過一本講國際信息學奧賽金牌得主故事的書,並被深深吸引的緣故吧。
我讓家長給我找了家教教Pascal,是位青大的學生,這應該是我惟一一次請家教。上了四次課,我覺得實在是沒啥意思,還不如自學呢!剛好聽說計算機考級不再考Pascal了,就跑到學校對面的寶業書店買了一本譚浩強爺爺的《C程序設計》,那時的書還是綠皮,上面印著「發行300萬冊紀念」,大概現在早就超過1000萬冊了吧。
學會了C語言,一年的時間裡接連考過了計算機的一級,二級和三級。然後在初二那年的11月懵懵懂懂地去參加全國初中組的聯賽,坐了大半天的大巴去龍口,司機在黑夜的郊區裡裡痛苦地摸索著考場學校的位置,被我們坐在車上的學生笑稱為「深度優先搜索」。那次考試,我自是一道題都沒做出來,不過最後還是神奇地得到了25分(滿分400分),拿到了二等獎。
第二年的五一黃金周(那時候五一還放7天),我去了濟南的山東師範大學,參加為了高中生開設的奧賽培訓,其實啥也沒聽懂。不過認識了二中帶隊的臧方青老師,他讓我每周日下午去二中,跟著二中學奧賽的學生一起聽課。
當時來授課的是青大某位計算機老師,40多歲的中年男人。他講的什麼早已不記得了,只記得他對機房裡為數不多的幾個女生倒是很感興趣,被男生們私下嘲笑了很久。當時一起來上課的有另一個初三的同學,還有一個初二的學弟。每次課後,我們就在二中的操場瞎轉,縱論著各種國家大事。初中就做信息學競賽的孩子沒有人會擔心考不上二中,唯一不確定的是是否能進直升班,但事實上絕大多數後來都進了直升班。
信息學競賽的好處是,跟高中課業內容完全無關,所以高一就可以參加。選擇高一就參加競賽的同學,基本都是初中甚至小學就有編程基礎的。關於我們是如何天天蹺課在機房打遊戲引致班主任強烈不滿卻又在接下來的期中考試裡包攬了我們班男生前5名的「事跡」,先前的文章裡已經描述過,這裡不再贅述。
當時的班主任極力反對我們搞競賽,他有一句名言「如果說高考是千軍萬馬過獨木橋,那麼搞競賽就是走鋼絲。」這話一點也不錯,每年全省通過競賽保送到所有大學的人,不過只有1,200人。不過他忽略了一點,獨木橋難走,是因為千軍萬馬都在過,競賽儘管是走鋼絲,可是競爭的人數也要少很多啊!特別是在山東這種高考大省,二中的學生去高考,跟縣裡的學生比,真的沒有什麼優勢。而競賽尤其是信息學競賽這種高科技玩意兒,則只有省裡幾所名校才能搞得起來,競爭一下子少了很多。
平時大家在機房學習和做題,需要用到OJ,Online Judge即在線評測系統,它會像考試一樣,用不同的數據測試你的程序編寫是否正確。開始,大家用得最多的是同濟大學為大學生編程競賽ACM開設的網站,偶爾也用用北大的網站。題目做對了,會出現「AC」(Accept)的提示,因此「AC」也就成了做信息學競賽的學生最願意聽到的詞語。當時大家有流傳這樣一句話:「一旦AC,反覆提交,測出自信,成就英豪。」
再後來,有了一個叫Vijos的網站,是湖南一個高中生搞起來的。因為它的評測機制和高中生競賽完全相同,例如一道題不只有對和錯,還可能出現得到部分分數的情況,而且它上面有不少歷年競賽的真題,所以一下子把大家都吸引去了,成了刷題首選的網站。那時還有一個信息學競賽的論壇,不過除了少數正經的學術討論,大部分都是高中生們在上面撕逼。
再後來,聽說全國搞競賽的小朋友們都開始用一個叫RQNOJ的評測網站,而這網站竟然是青島一個初中生做的。當然,那個小朋友後來也毫無懸念地來到了二中。二中真的是個臥虎藏龍的地方。
競賽中另一大「技巧」叫cheat。顧名思義,就是欺騙評測系統。因為評測採用黑盒制,只看結果對錯,不看代碼。所以大可以用投機取巧的方法來欺騙:最簡單的辦法是每道題都會附一個「樣例輸入輸出」,例如輸入是1,輸出就是2。如果這道題不會做,大可以讓程序永遠輸出2。通常,樣例輸入輸出會是評測時10個數據中的一個,所以這樣通常可以得到一道題10%的分數。當然還有很多高端cheat法,例如找到題目一些容易解決的特殊情況,只針對特殊情況編寫程序,有時也會有很好的效果。當時大家都在用的線下評測程序叫cena,原理是將你程序的輸出與保存在固定目錄中的標準答案做對比判斷對錯。當年曾經寫過一個程序叫CenaCheater,自動在電腦中搜索保存的標準答案文件並讀取其內容,當然結果肯定永遠是滿分。後來我把這個程序公布在網上,引起軒然大波,以至於後一個版本的cena專門為此修改了代碼。不過他們只是進行了最簡單的加密,依舊不費力就可以破解。
當時在二中負責信息學競賽的臧老師被大家稱作老臧,其實那時候年齡應該還不到30,和我現在差不多大。他是個很厲害的人,這並不在於他編程有多厲害,他甚至幾乎不會編程。而是在於他可以把這幫學生們組織起來,讓大家互相切磋提高,同時也並沒有一刀切式的阻止大家在機房成日的打遊戲。
說起打遊戲,這絕對可以算是信息學競賽機房的精髓。當時機房的電腦良莠不齊,大多都是從大家上計算機課的機房淘汰下來的舊電腦,從最好的奔騰4到破爛不堪的賽揚都有,不過最好的那幾臺電腦總是被遊戲高手們所霸佔。不過有趣的是,每次競賽過後統計大家的成績,總是打遊戲越多,打得越好的人,成績越高,猶如一道魔咒。儘管屬於機房少數不打遊戲的另類,不過每日耳濡目染,直到現在依舊記得大家常玩的那些遊戲:
大型遊戲有兩個,都叫「真三」,不過有著微妙的區別:
這是原版的「真·三國無雙」,小日本開發的:
還有另一個「真三」其實是國人為魔獸做的RPG地圖,就像DOTA:
每至沒有編程考試的時候,機房裡常常就會傳來大家聯機「真三」的聲音。恕我愚鈍,真的是很久以後才搞明白兩個「真三」的區別。
還有幾個小遊戲,屬於大家平時休閒娛樂時會打的,就連我這樣不打遊戲的人有時都會來上兩盤,不過總是被虐得很慘:
小朋友齊打交(LittleFighter2),這是一個類似於拳皇的橫版對打遊戲,可以聯網對打。然而人物頭像卻都是Q版的。當時大家最大的樂趣就是找到遊戲的頭像文件,並將其改成同學甚至老師的頭像。一時間,機房屏幕上全部都是亂飛的同學和老師的頭像(請想像一下這種場面)。
還有一個遊戲叫血腥大地(CrismonLand),這是一個壓力大時發洩的極好遊戲。你在遊戲裡扮演一個孤膽英雄,用各種武器對抗四周不斷襲來的殭屍和昆蟲。大家最愛玩的是Rush模式,你在開局時就會獲得一身高端裝備,然而卻要面臨不斷湧來且數量急劇增加的殭屍,
沒有人能贏,只是看誰能撐得時間最長。
再後來,可能是遊戲都打膩了,大家又開始研究新的玩法——入侵學校的各種網站系統。圖書館是最先被攻破的,因為密碼實在是太弱了,大家幹過不少把借書時間篡改以獲得更長借書時間的事,不過偷書這類事情我們是不會幹的。再後來,到了我高二的時候,學校引進了一套選修課的選課系統,忘了是找到了哪個漏洞,我們一下子看到了全校所有學生在這個系統裡設置的密碼。印象最為深刻的是竟看到某高一學弟(儘管他不學信息學奧賽,但他很多同學都在學)設置的密碼是:「woaixxxxxx」(xxxxxx是某女生的姓名拼音),此拼音一度成為大家的笑談。
哦,來說個虐狗的事吧:這個男生,和密碼裡的那個女生,已經結婚了。從初中一直走到現在,直到結婚。
幸運的人永遠都有,不過永遠都是別人。
印象更深的另一件事是高一暑假去煙臺某中學的競賽培訓夏令營。大家住在學生宿舍裡,每天吃著早中晚三頓自助餐,總要打上7,8個菜,要吃到肚皮圓滾滾才離開。每天除了上課和做題,剩下的時間便聚集在宿舍裡打牌。夠級保皇自是不必說,大家那時最流行的竟然是電腦上的紅心大戰,只是改成了用實體撲克牌來打。
上課和做題可能是最無聊的事。講臺上的「奧賽名師」王建德,用他標誌性的上海口音普通話枯燥無味地讀著課本或課件,「卯den於」(冒號等於)那個獨特的發音大概是能記到現在印象最深的痕跡。
再後來,因為高二拿到了一等獎和保送資格(4道題做出1道就行),又顯然不具備衝擊省隊的實力。所以不再有理由蹺課待在機房裡了,後來只得藉口學生物競賽來蹺課了,不過這又是另外一個有趣的故事了。
一晃10年竟就這樣過去了,當年一起集訓一起做題一起蹺課在機房打遊戲的兄弟們(也有少數幾個女生哈哈),你們還好嗎?
(完)
----
第二位嘉賓出現辣!
雖然她低調的沒有發照片
但是從微信頭像(噓)可以看出
非!常!女!神!
暱稱:不想去小姐
1989年生,巨蟹座
身高:160,體重不詳
職業:公務員
工作地點:青島
微信號:polarisskyfighting
徵友要求:男,年齡26-36皆可,工作在青島並未來長期打算在青島,職業無特殊要求,儘量不要同職業者。身高172以上即可。