021. 白書

投票推薦 加入書籤 小說報錯

  幾個月學的知識點在腦海中翻湧,郭曉川努力尋找其中千絲萬縷的聯繫,試圖與剩下的題目建立某種微妙的匹配。

  再看排名,前面 9個人里,有人多過了一道題,這題很像是動態規劃,但之前稀里糊塗練過的兩題,根本提取不出任何能帶來頭緒的經驗。

  還剩一小時,剩下的三題中只能押注一題,沒半點容錯空間了。

  所有題都已讀完,只有一道無人碰過的題隱約有些思路——搜索!

  不管了,寫!

  提交,TLE(運行超時)。

  優化!

  雖然結果是 TLE,運行時間頂格顯示為題目的 2秒運行時限,但郭曉川在本地模擬了一組最大的數據,似乎並沒有比 2秒慢很多。

  繼續優化!他下定決心。

  集訓時尹學長推薦過 POJ 1011,是一道窮舉所有可能將小棍子拼成相同長度棍子的題,他說那道題雖然理論複雜度不算是個「正確的題」,卻能練優化思路,也就是「剪枝」——用各種辦法排除搜索時沒必要的分支。

  用為數不多的搜索優化經驗,讓這份代碼快一些,再快一些。

  剪!——TLE。

  再剪!——還是 TLE。

  接著剪!——依舊 TLE。

  比賽時間還剩 20分鐘,郭曉川的排名掉到了第 12。

  還有什麼遺漏的?他開始從頭梳理題目條件。

  POJ 1011斷斷續續憋了 3天,沒搜題解,硬是自己卡出了 AC。

  眼下這個題一定也可以的!一定!

  排序、調換順序、預處理、翻轉邏輯……該試的都試了,還差什麼?還差什麼?

  好像就差一點點!也許是幾百毫秒,也許是幾十毫秒!

  還剩 10分鐘。

  再一次翻遍了代碼中每條邏輯。

  還剩 5分鐘。

  進不了校隊了嗎?努力都白費了嗎?

  念頭冒出來,郭曉川猛地搖頭。不行!再想!

  視線飛速掃著代碼。

  `printf`?

  `while`?

  `DFS`?

  `break`?

  `scanf`?

  `scanf`!!!

  編譯器的書里對`scanf`緩存區的討論突然衝進腦海。

  由於維護內部狀態及格式解析的開銷,它的速度比直接獲取字符的`getchar()`慢,如果先用`getchar()`把輸入讀成字符,再一次性轉為數字呢?

  快沒時間了,寫!手速推到極限。

  最後 2分鐘,郭曉川提交了修改後的代碼。

  「Pending」(等待評測)的狀態十分短暫,卻又像一個世紀那麼長。

  突然狀態一閃,1930ms(毫秒),「Accepted」(通過),卡在時限內 AC!

  郭曉川不受控制地喊了一聲:「Cao!」引得周圍幾人側目,彭峰也被嚇了一跳。

  沒有封榜的排名仍在實時更新,郭曉川的名字跳到了第 5。

  最後的時間,榜單沒有發生新的變化,比賽結束。

  如同被抽走了所有力氣,他整個人癱在座位上,弓著背盯著屏幕,一動不動。

  機房比以往的比賽結束更躁動一些,大多數人紛紛起身或離開座位,有的已經在收拾資料準備離開,有的三三兩兩圍在一起,打開了四次個人賽的排名窗口指指點點。

  眼前的排名頁顯示:

  1.蘇明

  2.曹象

  3.劉建

  4.呂良

  5.郭曉川

  ……

  8.肖樂

  ……

  13.湯雨薇

  ……


  15.陳小燕

  ……

  19(並列墊底).彭峰(0題)

  「恭喜川哥挺進校隊!」彭峰恭賀道。

  「別別別,等周末公布結果。」郭曉川有氣無力地擺擺手。

  「真行啊,F題咋做的,就你一個人過!」肖樂走過來。

  郭曉川坐著沒動,抬頭笑著比了個 5(自己的名次),又比了個 8(肖樂的名次),沒說話。

  「得了得了,給你得瑟的。就輸你一次,下次還不一定。」肖樂翻了個白眼,「吶,黑書,給你。」說著遞過一本大部頭。

  「不用了不用了」,郭曉川連連擺手,「這麼高端的資料,你肖神才配得上。」

  「嘿你個……」肖樂拿郭曉川無可奈何,「快說,F題。」

  「暴搜,剪枝,`getchar`。」郭曉川無比簡潔地吐出三個詞。

  「恭喜你發明了快讀。」不知尹南巍什麼時候已站在顯示器背後,播音主持般說出這句話。OJ管理員隨時可以看任何人的代碼。

  肖樂抬頭,「什麼是快讀?」

  「輸入量較大的題,用`getchar`或`fread`等方法能比標準輸入節省很多運行時間,你們後面肯定會學到。」尹南巍轉向郭曉川繼續說,「這個題正解不是搜索,不過能水過去也是本事。比賽,一切皆有可能。」說罷轉身的同時對聚集的幾個人比了個贊的手勢後離去。

  「我還當發現了什麼了不得的秘密武器,原來是基本操作。」郭曉川自嘲道,手撐著桌子故作蹣跚起身,「不行,今天中午得回宿舍睡一覺,睡醒了再來。」

  說罷轉身往門外走。

  「還去教工食堂吃飯不?」彭峰正收拾桌上的資料,抬頭朝他背影喊了一聲。

  「不了。」郭曉川腳步雖慢但沒停。

  彭峰扭頭看了一眼,「哎?陳……」話到嘴邊忽然想到肖樂在旁邊站著呢,硬是把「小燕怎麼沒影了」的後半句咽了回去,對著肖樂繼續道:「沉不沉這黑書,趕緊放下吃飯去。」

  「不去。」肖樂抬了一下手,回自己位置收拾資料去了。

  郭曉川剛到機房門口就發現湯雨薇站在走廊里。

  見他出來,湯雨薇走了上來。

  「找我的嗎?」郭曉川心裡想著,卻沒敢直視,怕不是找自己的話,打不打招呼都有些尷尬,徑直往前走卻放慢了腳步。「郭曉川,這個送給你。」湯雨薇遞出一本白色的書。

  郭曉川接過,看向封面,白色為底,藍色波紋,黃色的大標題「算法競賽」格外顯眼,下面還有行白色小標題「入門經典」。

  他抬頭,正撞上湯雨薇那雙靈動的杏眼,亮閃閃地等著他的反應。郭曉川心尖一緊,慌忙把視線拽回了書上。

  一時不知該不該收,但又非常想收下眼前這個人送的禮物,大腦飛速運轉,想先找點合適的答話。

  隨即瞥見封面作者,「劉汝佳」!順勢發現左上角藍色邊線里一行字赫然是「算法藝術與信息學競賽」,忽然有種莫名的哭笑不得。

  「這個大神的書……」郭曉川慢慢吞吞地說出幾個字,想提起黑書的晦澀,怕自己拿了也看不懂,白辜負這份心意。

  沒等他說完,湯雨薇就打斷:「今年新出版的,跟黑書不一樣!前幾章我看過了,寫得特別好,特別入門!」語氣輕快,顯然看出了郭曉川的心思。

  「你也知道『黑書』這名字?」郭曉川一下來了興致。

  「劉老師可是我偶像!」湯雨薇表情多了分光彩,「黑書大概是他早年寫給國家隊的,拿那個入門肯定不行。」。

  「那你知道為什麼叫『黑書』不?我好奇好幾天了。」郭曉川趁機把憋了好久的疑問說出來。

  「最直接的原因是封面比較黑吧。」湯雨薇說著笑了一下,隨即側著身子往前湊了半步,像要說什麼了不得的秘密,「還有民間傳言,這書一開始沒版號,那就像黑市上的書一樣。」

  平時清冷模樣的「女神」突然擺出這有點俏皮的動作,甚至郭曉川第一次注意到口音帶著點楚南獨特的「塑料普通話」,顯得格外可愛。

  「那個……」郭曉川不知該怎麼收下,亦或怎麼推辭,「集訓還有幾天,你不看了?」

  「我的集訓已經結束啦。」湯雨薇說得灑脫,「爸媽喊我回家,準備去自駕游。」

  「周末還有場組隊賽呢,你名次一直挺靠前,說不定能進校隊的。」郭曉川實打實的有些惋惜。

  「就算進了校隊,我也不會繼續訓練啦。」湯雨薇聳聳肩,接著像在調侃地說:「這書拿回去怕是還要被我爸媽說『不務正業』。」

  隨即眼珠一轉,她繼續補充道:「上次借了你的筆記,這次還你一本資料。」

  郭曉川似終於找到了一個說的過去的理由,那種「無功受祿」的彆扭感一下輕了不少:「那好,感謝感謝,我就收下了。」卻沒敢接著說出「下次請你吃飯。」

  「走咯。」湯雨薇沖他比了個「拜拜」的手勢,轉身往電梯口走去。

  郭曉川本也要離開,但怕進了電梯不知接下來再說什麼,乾脆徑直走向樓梯。

  剛走兩步,突然被一聲「哎」喊住。

  「別——弄——丟——了——」湯雨薇聲音不大,故意拖了長音,好像是在「致敬」上次借筆記的提醒。

  郭曉川舉起書,節奏彆扭地揚了揚,十分認真地說:「一定!」

章節目錄