前幾天我在和群裡的一個人聊天,他NOIP2017只考了70分。
我問他:“你沒有什麼理想嗎?你有什麼想做的事情?”
他瞬間回覆道:“我要學所有發明過的演算法!”
真沒想到現在還有這種人。
我問他這為什麼能成為他的目標,他反問道:“你就沒有這個想法嗎?學一大堆別人聽都沒聽說過的演算法,出成題目讓他們全都爆零?”
好有道理我竟無法反駁。
這麼能說會道的OIER,一定是個不可多得的人才!
於是,我決定:把他拉黑。
這幾個月,在學校沒日沒夜停課集訓,原本浮躁的我,做題也逐漸變得內斂冷靜,在高強度快節奏下像個學習機器,不帶一絲情感的寫題調題。
無論是現役OI圈還是退役OI圈,這兩個圈子的大佬個個都是了不得的人物。在圈裡混久了,我就認識了太多優秀的OIER,然後,我發現一個殘酷的共同點——
他們都不學高階演算法。
SAM?背板太煩躁,字符集一大就會炸。
線段樹?標記下放上傳順序一反就死。
隨機線性存取表?為懶人設計的。
我問過機房裡一個朋友,“你想多學一些演算法嗎?”
他說:“廢話,肯定想學。”
我問:為什麼不學?太忙嗎?
他嘆氣:優秀的OIER都不學演算法的。
跟我聊天的這個朋友,從初中開始學OI,各種板子背了一大堆。
平常我們考模擬題,30分的暴力他能寫60分,60分的暴力他能寫AC。正解O(nlogn)跑1400ms,他寫一個O(2^n)的隨機化能跑進300ms。後來我們在看他的程式碼時發現他為了除錯,還寫了一個2e8的迴圈在裡面,交上去的時候忘了刪掉。
後來他去bzoj上寫題,hash killer III寫了一下午,結果卻沒看到他的提交記錄。後來經我們百般詢問之下,他才告訴我們卡hash的方法一旦被ccf得知,會對廣大OIERS造成不可逆的負面影響。
那段時間bzoj經常莫名其妙504,謠傳是他發現了破解bzoj每天交題數量51次上限的方法。
這樣的OIER,恐怕大部分人一輩子追不上。
我還認識一個非常厲害的OIER,身兼某OJ管理員一職。
當時我們學校要搭建一個本校用的OJ,他直接用學校機房裡淘汰的百來臺電腦建了一個分散式系統,跑的跟CF評測機一樣快。
我問他為什麼不寫演算法,他告訴我:在你和程式碼實現之間隔著演算法,無法體驗到程式之美。
所以,不寫演算法,更能讓你體驗到學習資訊學競賽的那一份初心。
這位管理員每次刷題都要寫雙份程式碼,一份只用for,if,while這樣的語句,一份用演算法實現,目的是為了給學習他程式碼的人一條明路,也方便在部落格上寫題解。
我們學校的OJ硬體越來越舊,老師打算花錢買一套新伺服器,舊裝置要賣掉以補貼費用,但清空資料成了一個大難題。有同學建議物理銷燬,還有人覺得應該用慢的要死的磁碟清除工具來消掉所有資料。這時一個小夥子跳出來說:“把伺服器裡面所有硬碟拆出來給管理員,讓他用記事本把所有1都寫成0不就好了嗎?”之後再也沒有一個人說話。
後來我們用上了新伺服器。第一次考完試我們才發現OJ還沒有配好,但得分和輸出都很正常。結果機房的老師說:“當時這個管理員像瘋子一樣衝進來,一邊看交上來的程式和測試資料,一邊狂打輸出結果,我當時不知道該幹什麼,就出去了。”
像他這樣彷彿超神的OIER,對於高階演算法,自然不會有著太多的期待,他知道他會在哪些場合下去用他們,所以,他不著急。
我希望你明白,優秀OIER的價值從來都是由自己體現,而非由用的演算法體現。
上週跟朋友吃飯,他說他認識的一些學校的OIER,總會認為OIER沒必要太累去拼搏,拿個省一差不多就得了。
他跟我說,「可你不一樣,你會一直提醒我,要我遠離舒適區,要我不能安於現狀,要我有危機意識,你好像特別看重OIER的思想。」
OIER都是需要與工具獨立的。
仍是要永遠年輕,永遠熱淚盈眶。
仍是要時時刻刻對美好滿懷期待,對未來充滿渴望,對經典心懷敬畏。
要記住啊,知世故而不世故,處江湖而遠江湖,才是最善良的成熟。
(本文轉載於知乎使用者Tangenter,侵刪)