ACM大神之路自述
最后一天,漫天飄起了雪花,假裝歡送我離去。
這次WF之戰(zhàn)不太順利,早期的C題大概花了1秒鐘構(gòu)思,然而由于輸出格式多了一個(gè)空格直到兩個(gè)半小時(shí)才逃脫Wrong Answer的糾纏。還好lynncui在期間獨(dú)擋一面過掉D。最終成績不好,然而沒有遺憾,從不遺憾。
相比之下,來自全球的隊(duì)伍讓我看到了很強(qiáng)大的實(shí)力,每一道題都有人過,包括SJTU欺騙性提交的H都被人干掉了。身為地球人我感到自豪。
WF之旅很奢華(Sample: 1300一晚的酒店,99一頓的早餐),活動(dòng)很多,服務(wù)很好。但最終念念不舍的是各位一見如故的朋友們,至于為什么一見如故我也不得而知。按HH師傅說,That's what ACM brings to us。也感激于HH師傅作為浙大教練,卻為我們攝下了更多的賽場瞬間。
早早就打算把今年作為退役戰(zhàn),因?yàn)槲蚁嘈?#xff0c;大學(xué)生涯完全耗散在一門競賽上是不太妥當(dāng)?shù)氖虑椤H贿@次的經(jīng)歷讓我特別舍不得各路朋友們,如果有機(jī)會(huì)還是很想拉大伙喝一些酒,談一下天。雖說退役,此后我仍然會(huì)找有趣的題目做做,仍然會(huì)投入很多時(shí)間在算法之中,但不再關(guān)心比賽的事情。
最后一天,腦海里全是這兩年ACM生涯的片段。其實(shí)早就想記下ACM生涯中復(fù)雜的情緒,可擔(dān)心把事情說得太明白會(huì)破壞一些友誼。如今想來,倘若批判不是直白的,那么贊美就是沒有意義的。
初出茅廬
剛踏入大學(xué)校門的時(shí)候,并沒有聽說過ACM。跟班里大都數(shù)同學(xué)一樣,大一接觸C語言,但中學(xué)時(shí)候?qū)SP和Flash的AS比較熟悉。大一被fyj老師看中,進(jìn)了一個(gè)研究生為主的項(xiàng)目團(tuán)隊(duì),并沒有給我什么任務(wù),只讓我學(xué)東西,事實(shí)上也沒學(xué)什么東西,倒是里頭一個(gè)師兄給我接了一些私活,我一個(gè)人包做ASP的商城、論壇之類,完成一項(xiàng)大概花三個(gè)星期,報(bào)酬1000+。賺了一些錢之后就翹了一大片課,買機(jī)票去廈門跟前女友過日子。回想起來覺得有點(diǎn)不可思議。那時(shí)候確實(shí)過得很瀟灑,平時(shí)做各種各樣喜歡做的事情,班里還有人拜我為師學(xué)吉他。
大一上學(xué)期的期末,跟4h去喝酒的時(shí)候他首次提起ACM(其實(shí)他指的是OJ),我馬上表示這是一種很有趣的事物,公平而富有挑戰(zhàn)性。當(dāng)晚回去就跑到HDOJ嘗試,下面這個(gè)是處女交。
419087 2007-12-04 20:19:32 Wrong Answer 1000 0MS 0K 82 B C 3xian?
PS:HDOJ的A+B確實(shí)比較折騰,對于不了解OJ模式的人來說,哪里知道用EOF來做什么。
接下來的幾天很快就做掉了最大子串和,高精度加法什么的。當(dāng)初想按題號(hào)順序做,很容易想象,活生生被1007卡死了(二維最近歐幾里得點(diǎn)對)。那時(shí)候大號(hào)小號(hào)一共交了兩百多次,最后是給水過去的——隨便按兩個(gè)方向排序,然后只比較相鄰的點(diǎn)。話說回來,即便是水過去已經(jīng)不容易了,一個(gè)不知算法為何物的土人,要想出經(jīng)典的分治法和掃面線法都是不太可能的事情,更別說線性篩法。而這個(gè)題目給我的最大啟發(fā)是:原來C語言有qsort這種東西。
晚些找4h單挑了幾次,隨機(jī)抽題號(hào),比誰AC得快,戰(zhàn)戰(zhàn)兢兢地全勝。
入隊(duì)
第二個(gè)學(xué)期的時(shí)候,在公共垃圾桶里瞄見了一張ACM隊(duì)招新傳單,是的,是垃圾桶,我把它從垃圾桶里掏出來了。必須的,跟4h一起去面試。問,掛過科沒有。 我說我掛了歷史之類的。(其實(shí)還掛了高數(shù),但是“之類”是一個(gè)海納百川的辭法……所以不算欺騙。一年之后領(lǐng)隊(duì)發(fā)現(xiàn)我掛過高數(shù),一臉想踢我出隊(duì)的樣子。)接著,我被考到快排的時(shí)間復(fù)雜度,4h搶答nlogn。我說,我已經(jīng)在杭電做了一百題了,夠不。曰,到時(shí)候看你校賽的表現(xiàn)。
后來校賽拿了第3名,前兩名大三的至今搞不清是誰。其實(shí)校賽里頭有一道最大子串和,我沒讀懂題意,否則估計(jì)就奪冠了?反正是順利入隊(duì),并直接被扔去省賽作敢死隊(duì)。當(dāng)時(shí)我跟領(lǐng)隊(duì)說過這樣一句話讓他覺得特?zé)o聊,我說,明年的這個(gè)時(shí)候我肯定是我們學(xué)校最猛的。
另外當(dāng)時(shí)隊(duì)里最受寵的是06級(jí)的wjs,我又悄悄跟4h說,明年的這個(gè)時(shí)候,06級(jí)最猛的不是wjs,而是ccf。
ziliang
不得不提到這個(gè)人。ziliang是廣工ACM近代史的鼻祖,07年為廣工奪得了的地區(qū)賽的首牌和首銀。一路以來給我們指引方向,盡管細(xì)節(jié)上沒指點(diǎn)太多,其實(shí)也沒必要指點(diǎn)太多。在我看來他的思維能力比現(xiàn)在的一批人高一個(gè)檔次,估計(jì)也是屬于百年孤獨(dú)的類型。
從我入隊(duì)開始ziliang就開始忽悠每一個(gè)人。比如一開始假裝師姐來掏我們的底細(xì),當(dāng)時(shí)她(他)問我是不是搞過OI,我答:OI?OJ吧……
然ziliang的影響力之大也造成了不好的影響。隊(duì)里的人都膜拜他,膜拜到每天都陪他在Q群里吹水。平均下來每天要吹兩三個(gè)小時(shí)甚至更多,這算不算是變相自殺。早期我試圖融入這樣一種氛圍,畢竟孤立難以生存。后來發(fā)現(xiàn)融得很不舒服,權(quán)衡之后選擇了屏蔽Q群。事實(shí)上隊(duì)里的這種現(xiàn)象歸根結(jié)底跟ziliang是無關(guān)的,不是他不知道自己在干什么,而是各位隊(duì)員不知道自己在干什么。
周賽
進(jìn)隊(duì)之后我們新生被組織起來參加周賽,也正是從這個(gè)時(shí)候開始,剛進(jìn)隊(duì)的我就對整個(gè)團(tuán)隊(duì)失去了歸屬感。本來按我入隊(duì)時(shí)候的實(shí)力來說,甩開第二名幾題應(yīng)該沒有什么問題,但事實(shí)上有時(shí)候我連冠軍的位置都不保。是的,從網(wǎng)上找代碼作弊的人太多了。不想點(diǎn)名也沒必要點(diǎn)名,男生很猖狂,女生也很猖狂。當(dāng)時(shí)我看到很多可悲的現(xiàn)象,比如有些沒作弊的人因?yàn)楸蝗丝衽岸鴨适判亩鯝CM,比如有的人自己作弊之后私底下還跟我說誰誰誰作弊,比如帶隊(duì)老師根本就不關(guān)心我們這兒發(fā)生了什么。總的來說就是,廣工當(dāng)時(shí)這么菜的ACM隊(duì),大家居然還挖空心思通過坑自己人來滿足那點(diǎn)可憐的虛榮,***作孽。
最初參加周賽的時(shí)候,我是無比的緊張,無比的投入,以至于后來無比的失望。之后無論是各種周賽,我看到ranklist上熟悉的賬號(hào)們我就不想再摸鍵盤。去年秋天我收取集訓(xùn)總結(jié)的時(shí)候看到很多人都說我周賽的時(shí)候總是“火星般消失”,這個(gè)簡單的原因,沒人體會(huì)得到。
盡管如此,周賽之中還是有一些搞笑的回憶,比如Lynncui敢于隨機(jī)敢于打表,比如wjs用一次不回溯的DFS水過了最短路,比如yqj企圖用long double過各種高精度,比如我大一比賽的時(shí)候“發(fā)明“了Prim、Disjoint Set,比如我從牙縫里刷出芝麻的時(shí)候才發(fā)現(xiàn)爸爸媽媽在我周賽的時(shí)候做了各種補(bǔ)充能量的點(diǎn)心。
長進(jìn)
從開始到現(xiàn)在,我迷戀于算法,而最終并沒有成為一個(gè)優(yōu)秀的ACMer。這一點(diǎn)跟ziliang相反,他不喜歡站在巨人肩上,他知道比賽最重要的是戰(zhàn)術(shù)和技巧。必須要看到,玩ACM跟玩算法是不同的事情,ACM是考驗(yàn)智慧、考驗(yàn)綜合素質(zhì)的,我敢大言不慚地說,ACM玩得好甚至不需要去刻意學(xué)什么算法。雖然我們偶爾見到一些題目需要一些成熟的經(jīng)典的算法,那些題目是我喜歡的題目,但是那些題目屬于最垃圾的ACM題目。另一角度來說,很多人覺得自己ACM出成績了就代表自己算法不錯(cuò)了,這是一種錯(cuò)誤觀念,當(dāng)你深入任何一個(gè)方向的算法領(lǐng)域的時(shí)候,你會(huì)發(fā)現(xiàn)ACM那點(diǎn)東西太小兒科了,太不入流了。說白了,ACM是打著算法的幌子來讓大家比腦子。
粗略統(tǒng)計(jì),鄙人兩年來做題1.6K,看國內(nèi)外論文200+,看書十來本。最終變成現(xiàn)在這個(gè)樣子……什么樣子我自己就不評(píng)論了,你覺得是什么樣子就是什么樣子。
對于ACMer來說,Matrix67早已放過話,“USACO你老老實(shí)實(shí)一個(gè)字也別看解題報(bào)告,做完你就無敵了”。我們隨處可見一些做了很多很多題目實(shí)力還上不去的人,此類八成是是有看解題報(bào)告的習(xí)慣,其中包括想都沒想就沖進(jìn)discuss里頭瞄來瞄去。
不由得想起一個(gè)人。08年秋天,ACM圈子冒出了一個(gè)博客點(diǎn)擊率很高的家伙,叫zfy。他的出現(xiàn)讓不少人長了見識(shí),不得不表示稱贊。本來他是一個(gè)作風(fēng)不錯(cuò)的人,但是在一定程度上讓一些人養(yǎng)成了新的壞習(xí)慣——做不出題就找論文,這跟找解題報(bào)告有什么區(qū)別呢,就名字不同。我們學(xué)校肯定也有人覺得,三鮮是不是腦子被驢舔了,做個(gè)破題用不用看那么多論文。事實(shí)上我基本不在做題的時(shí)候碰論文,倘若兩者糅合在一起,最終結(jié)果基本就是這頭感受不到論文的內(nèi)涵,那頭題目也白做了。
其實(shí)在我們這種環(huán)境下提高還是比較不容易的,一來身邊沒什么人可以提供幫助,二來各路大牛也不喜歡搭理菜鳥。很多時(shí)候就需要死磕,一個(gè)人死磕。記得當(dāng)初通宵磕V圖,通宵磕動(dòng)態(tài)樹,過年回老家旁邊開幾圍麻將窗外小屁孩放炮竹我在黑燈瞎火翻譯后綴樹。如之前所說這些東西其實(shí)跟ACM關(guān)系不大,但我心里總會(huì)有一種感覺,人家OI的娃們隨手拈來的東西你寫不出來就沒法跟人家比。好比08年地區(qū)賽的網(wǎng)絡(luò)賽那回,人家紛紛秒殺的題目,我們?nèi)]一個(gè)人聽說過那些個(gè)算法的名字。
后來比賽經(jīng)歷得多了,也慢慢給自己有了定位。時(shí)常在網(wǎng)上看到很多人比完賽唉聲嘆氣,也有些人號(hào)稱“本來有奪金的實(shí)力”、“沒發(fā)揮好”。我曾經(jīng)也有段時(shí)間神勇地跑去做掉很多難題,一度以為自己到了登堂入室的水平,后來發(fā)現(xiàn)完全不是這么一回事。真正的高手是什么樣的,他們不需要吃飯時(shí)候的冥想,不需要靠洗澡時(shí)候的靈光一閃,他們比賽的時(shí)候坐在那兒就能熟練地做出各種難題,他們在讀錯(cuò)題的時(shí)候能保證成績,在數(shù)據(jù)錯(cuò)的時(shí)候能保證成績,在沒人敢提交的時(shí)候果斷提交,在比賽快結(jié)束的時(shí)候冷靜編碼。簡單來說就是,他們不僅僅是做題能力強(qiáng),而更是綜合素質(zhì)強(qiáng)。比賽之后說太多“本來”、“如果”的人,屬于心理素質(zhì)欠佳,這是綜合素質(zhì)重要的一塊,也是阻礙長進(jìn)的一塊。因此,當(dāng)你沒有達(dá)到預(yù)期的目標(biāo),根本就不應(yīng)該想著你丟了一塊牌,而應(yīng)該想想自己是否真的值那一塊牌。
境內(nèi)境外
這個(gè)話題我以前寫過,但是刪掉了。
國內(nèi)的ACM圈子總是表現(xiàn)出一種浮躁的風(fēng)氣,盡管不缺乏超強(qiáng)的人,但強(qiáng)人都很低調(diào),或者說,強(qiáng)校更多是閉門造車。可以去看看國內(nèi)ACM最火的POJ論壇,琳瑯滿目的欠揍的東西:求/貼數(shù)據(jù)的、求/貼代碼的、叫人家來查錯(cuò)的、日題目的、炫耀的、留名的、二三流人物相互膜拜的。看看站內(nèi)信,多少是求代碼的(我的原則是問我思路的一定悉心回答,要代碼的一律無視)。再看看百度到的解題報(bào)告,多少是相互抄襲不求甚解的。
而國外,我不敢說得太完美,畢竟我對國外了解不算太多。首先一點(diǎn),國外的OJ很少上述欠揍的東西。自從把做題重心放到國外的OJ,用郵件跟一些外國選手聯(lián)系得越來越多,他們發(fā)郵件的時(shí)候會(huì)非常嚴(yán)謹(jǐn),幾乎每一句都會(huì)給出證明,至少會(huì)有一個(gè)簡單的交代,有時(shí)候附件里頭會(huì)附上幾篇論文。他們從來不貼代碼,但如果你腦筋實(shí)在轉(zhuǎn)不過來,人家會(huì)問你是否需要代碼。尤其是在SPOJ,我結(jié)識(shí)了俄羅斯/巴西/印度/美國/加拿大的朋友們,感謝他們給我?guī)淼乃械慕忸}思路的啟發(fā)和做人態(tài)度的啟發(fā)。這里說一個(gè)小插曲,曾經(jīng)有一位朋友賜我兩篇俄文的極品論文,全文翻譯成中文之后儼然成為天書,全文翻譯成英文之后仍然是天書,人肉翻譯成中文還是讀不下去,最終人肉翻譯成英文然后反復(fù)閱讀,終有所成……當(dāng)時(shí)的壯舉讓宿舍里直呼我是世界級(jí)一流選手
我認(rèn)為,國內(nèi)信息學(xué)競賽成績強(qiáng)勁,而IT行業(yè)不見得強(qiáng),從ACM這塊就看出端倪。我們這兒大環(huán)境是明顯不如人的。我作一個(gè)不負(fù)責(zé)任的假設(shè),假設(shè)全球所有閉門造車的經(jīng)典強(qiáng)校都不準(zhǔn)參加ACM比賽,那中國隊(duì)伍就是集體被虐。而行業(yè)的發(fā)展并不能僅僅依靠強(qiáng)校的寥寥數(shù)人。
Lynncui
該講講我的隊(duì)友了。首先最要感謝的就是隊(duì)友Lynncui,一直以來他對我都無比信任,而我卻總是在比賽的關(guān)鍵時(shí)刻表現(xiàn)出毛躁的一面,在此表示愧疚。由于Lynncui年紀(jì)偏小,我很奇妙地見證了他這兩年從一個(gè)胡鬧的毛孩變?yōu)槌墒烨嗄甑倪^程。在我們還沒入隊(duì)的時(shí)候,招新群里最高調(diào)的就是他,我很清楚地記得當(dāng)時(shí)他咬定PE是因?yàn)樵创a格式不對……于是我直接把他歸為**一類,萬沒想到Lynncui在未來會(huì)成為我最最好的搭檔。
他屬于很清楚自己在做什么的人,因此沒有動(dòng)不動(dòng)就看discuss、解題報(bào)告的陋習(xí)。盡管我有時(shí)候覺得他比較懶,并沒有花太多的精力在ACM之中,但由于他的清醒和踏實(shí),只要做一點(diǎn),就能進(jìn)步一點(diǎn),只要花心思,就能見效果。我在我們學(xué)校討論問題,基本上除了ziliang我就只找過Lynncui。無論是練習(xí)還是比賽,他都能保持清晰的思路,盡管有時(shí)候向他灌輸一種新思想會(huì)感覺他硬得像石頭一樣。于是我們隊(duì)有一招最常用最有效的戰(zhàn)術(shù):我有想法了就往Lynncui腦袋里灌……艱難地讓他認(rèn)可之后基本上就是無誤的,然后他坐我旁邊看著我寫,一交一個(gè)準(zhǔn)。不幸的是WF的后半場我自己已經(jīng)坐不穩(wěn)了,也沒能說服他什么。
當(dāng)然,Lynncui的個(gè)人實(shí)力也不是蓋的,他的強(qiáng)項(xiàng)就是以窮人的身份參加各種編程比賽贏取衣服。上次GCJ好像排一百多名來著。
不管怎么說,以他的做事習(xí)慣來看,以后肯定不差錢。
4h
這是我最老的搭檔,我的每一場ACM比賽都跟他相伴。同時(shí)他是我的酒友和玩伴,相比之下ACM隊(duì)友這個(gè)身份反倒是有點(diǎn)遜色。4h入隊(duì)時(shí)候的天賦和知識(shí)背景都是很高的,但似乎終究沒把ACM當(dāng)回事。而且怎么說呢,做題比較急功近利,以至于后期進(jìn)步不明顯。曾經(jīng)瞅見他下數(shù)據(jù)之后把過不了的數(shù)據(jù)直接打表AC的猥瑣事……甚是憤慨。不管怎么說,他一直能輕松地留在TEAM ONE,這就是他的本事,換個(gè)角度看,也是廣工ACM隊(duì)的悲哀。
對我來說,4h在我的大學(xué)生涯扮演者重要的角色。如果不是他跟我喝酒,晚上跟我到處去玩,廣工這地方真的不容易呆下去。
DieIng
這又是一個(gè)很信任我的人,感謝他。廣工里頭,DieIng對ACM的熱情僅亞于我,混跡于各大ACM神群,膜拜過各路神牛。DieIng比我們3個(gè)晚幾個(gè)月進(jìn)入集訓(xùn)隊(duì),幾乎沒有計(jì)算機(jī)的基礎(chǔ)。這家伙也有不少壞習(xí)慣,但是特別勤奮,以至于有今天的成績。我們集訓(xùn)隊(duì)里大家聽得最多的一句話就是DieIng說:又被三鮮鄙視了。我總喜歡挑他的壞毛病,因?yàn)槲也蝗绦目粗臒崆樵谧鰺o用功,但他好像覺得特委屈。
在很長一段時(shí)間里,廣工就只有我們4個(gè)在繼續(xù)走ACM的路(而且4個(gè)還都是同一屆,這種狗屎狀況今年地區(qū)賽還兩個(gè)隊(duì)伍奪金,玄妙無比),忘記是誰給我們起了個(gè)綽號(hào),曰,四大護(hù)法。于是DieIng總是最不幸的,因?yàn)橐粋€(gè)隊(duì)是3個(gè)人,而他總被排在第4,搞得他的隊(duì)友要么就是老東西,要么就是小朋友。而我覺得,是DieIng沒有沖破自己的那一關(guān),只要他敢站出來朝領(lǐng)隊(duì)說一句,我不信我比他們3個(gè)弱!那么數(shù)輪PK之后淘汰的也不一定是他。
去年我本來打算跟DieIng組隊(duì),畢竟2+2比3+1顯得有點(diǎn)人性,但最終領(lǐng)隊(duì)為了成績還是選擇了3+1。還記得跟DieIng為數(shù)不多的組隊(duì)練習(xí)中,只要是個(gè)題他都說是網(wǎng)絡(luò)流……沒想到后來DieIng領(lǐng)銜出征的哈爾濱地區(qū)賽還真的出現(xiàn)了網(wǎng)絡(luò)流,并且一出就是兩道,毫無懸念地,立馬就被我們Dieling童鞋秒殺,順利奪金。這事太不可思議,但無論如何,在自己專注的事情之中取得好成績是可喜可賀的事情,表示熱烈祝賀DieIng。
招新
去年我們ACM隊(duì)招新,挺滑稽,主力都是大二,招的都是大一。更滑稽的是,我大一時(shí)候從垃圾桶里掏出來的招新傳單被委任由我來重新設(shè)計(jì)。當(dāng)時(shí)設(shè)計(jì)得很精致,還有淡雅背景(打印出來就不見了……),弄了一個(gè)賽馬的面試題來吸引新生(假裝考智力,其實(shí)是刷掉那些從網(wǎng)上抄答案的家伙)。
由于宣傳到位,面試的時(shí)候來了兩百多人,但領(lǐng)隊(duì)采取了一種愚蠢的模式——分成5條隊(duì),分別打分。我心想,我們這兒入門的人都不夠5個(gè)。之后果然就出現(xiàn)了更愚蠢的事情。當(dāng)時(shí)要求是給每個(gè)人打幾個(gè)分,各項(xiàng)滿分是10分,而除了我和DieIng這條隊(duì)之外,每條隊(duì)打的分全是7分/7.5分/8分,我當(dāng)時(shí)差點(diǎn)就對其他4個(gè)隊(duì)的人爆粗,這到底是搞永不落空的抽獎(jiǎng)還是什么,作為一個(gè)篩選環(huán)節(jié),優(yōu)秀的人就應(yīng)該給9分10分,不行的人就應(yīng)該大膽往低分打,0分都沒有任何問題。最終就是大多數(shù)人都無法區(qū)分,采取隨機(jī)晉級(jí)。
招進(jìn)來的這幫人如今已經(jīng)是大二了,我沒見到有太大成績。我曾經(jīng)多次跟他們強(qiáng)調(diào),要把我們的BBS利用起來,大家一起進(jìn)步才能進(jìn)步,至今還是凄冷一片。至今這一批人也沒有跟我探討過任何算法問題,僅僅是偶爾找我?guī)退麄兊拇a查錯(cuò),找我要標(biāo)程。
罷。
往后
以后ACM的事情跟我沒太大關(guān)系。
總結(jié)
- 上一篇: 异军突起!当贝投影加冕中国家用投影仪增长
- 下一篇: css 怎么覆盖框架样式