發信人:
dwyak(Arthur), 信區: ACMICPC
標 題: 五、窮則思變
發信站: 飲水思源 (2007年11月18日14:20:47 星期天), 站內信件
http://tttttc.spaces.live.com/blog/cns!75F098439AE33731!220.entry短暫的欣喜過后我們要面對的是將要到來的總決賽。那一段時間我還要為我自己在系里
招惹下的一段不光彩的事情接受著深刻的教育。但愿這也是我這輩子犯下的最后一個重
大過錯。而那一段真誠懺悔的日子讓我明白了對待錯誤的正確態度:
坦然接受批評,認
真尋找自身錯誤,不背包袱,不帶心理陰影,正視錯誤的自己。然后是拉下的作業、課
程、期末考試,本科生活永遠都不能回避的一些東西。而其間我們隔三差五的進行訓練
,由于前期的訓練都是我和timeexceed大老遠的跑去本部,于是這一段時間則是jellyfi
sh大老遠的跑來閔行。老隊員表現出來的風格多半都在年輕人沒有注意到的細微之處。
沒有所謂的教練和裁判,也沒上網的條件,我們只是自己抽一些題目來做,然后也許就
是互相評測一下。
寒假的訓練則是一段難忘的經歷,我和timeexceed住在了教三四樓的java機房。在我的
印象里,每天都是兩場訓練,一場是早上開始,到下午兩三點鐘,然后我累得不行就去
睡覺,起來后吃晚飯,晚飯后接著訓練,然后夜宵,然后睡覺。時常我在六點的時候醒
來,夢里還在做題,天總是蒙蒙亮,而我卻總是分不清清晨還是黃昏。訓練的效果仍然
不算理想,但是有了幾點進步是明顯的。首先我們得到了幾個結論:1機時是一場比賽中
的重中之重;2 jellyfish絕對有能力很好地完成模擬題;3 timeexceed的成功率完全是
能夠提高的;4 這是我個人的感覺,我們跟清華的差距是一道題,并且是完全追不上的
一道題。
這幾點是重要的,說明我們在一定程度上對自己的認識開始深刻,并相應采取了可以看
到效果的措施。此外VAC的難以使用也促成了我們至為重要的第一條措施,那就使用Ultr
aEdit作為我們的IDE。這一切其實都是四個字:窮則思變。困境是時常遇到的,如果總
是順境那就沒有了提高和改進的環境,從某種意義上來說是一種更大的困境。于是,重
要的事情是在困境中要窮則思變,要發現問題的所在,并提出切實有效的措施。這樣的
措施要便于執行并且便于觀測執行后的效果。那條簡單的措施帶來了很多變化,第一是
機時被節省,因為根本無法調試,于是那些不知底的調試時間都被省了出來;第二是長
時間的讀代碼差錯使得我們每個人的代碼實現能力又不自覺中提高了;最后一點就是我
們開始意識到這樣的訓練使得不再害怕于使用任何的IDE,只要它具有代碼縮近的功能。
最后一點在后來被我重新的認識,那就是一支真正的強隊應該在任何外界的環境發生巨
大變化的時候,它依舊處變不驚。而經過那樣殘酷的訓練,IDE的變化對于我們那樣的
隊伍而言已經是一件很無所謂的事情了。
由于機時是重中之重,那么除了在訓練的時候增加措施來進行機時的保護,在賽場上也
要有一個相對的指標來衡量和控制。我們當時的標準是考察代碼量,最為核心的標準是
三個小時的時候是否有4-5題的代碼。這個標準在后來的幾年幾乎可以被后來的眾多隊伍
恥笑,但是在與當時卻是非常實際的一個標準。理由非常簡單,這個標準我們勉強能達
到,而同時這個標準已經能夠達到一個比較好的成績在其他的一切比較順利的情況下。
簡單的分析一下那些年的冠軍大多數是6道題,而某一次是7道。試想我們如果能在3個小
時完成4道題的代碼,并且能夠很好的保證這些代碼的正確性,至少是有效性;那么在剩
余的2個小時之內,我們完全有機會完成2-3道的代碼,也就是說從代碼量上已經可以接
近頂尖的水平。之所以在未來的若干年里,這個標準被狠狠地打破,我個人認為這是一
件水漲船高的事情。
Jellyfish對模擬題的能力的把握性直接帶來了戰術上的一些靈活性。這使得我在早期的
時候能夠騰出一段時間來好好地把握所有題目的難易程度,并且某些題目可以在準備之
后在上機,從而也提高了我的成功率和使用機子的效率。此外,這讓我在后來訓練中意
識到另一句重要的事情:很多隊伍都忽略模擬題,由于它顯得不是那么“有趣”“有挑
戰性”,然而事實上它和其他的所有題甚至是最難的一道題一樣:它是一道題,它是可
以插起一個氣球的一道題,無論氣球是哪種顏色的。而且,越是想拿好成績的隊伍事實
上越該注意提到這方面的能力,就好比球賽中有所謂的“機會球”,也就是人人都能得
分的球,這類題也恰恰是這種,只要你愿意在訓練的時候去寫那一行行的代碼。
Timeexceed在隊中的工作在多年以后給了我更加深遠的提示。他在隊伍中負責不多的代
碼,然而他上來之前一定是經過深思熟慮,并且在紙上很好的準備過的。這樣的意義在
于節省機時。事實上,由于我現在思考了很多關于調度的問題,我去回想這個問題的時
候認為當初這樣的策略其實是全隊去完成這樣一個戰術上的目標:把機時盡量的騰給我
。當然這樣的結果是我必須去負責解決掉更多的題目和代碼。于是,為了滿足這個戰術
目標,他們兩個負責讀掉絕大多數的題目。此外,甚至為了節省一點點的調試時間,tim
eexceed還要任勞任怨的在一旁筆算某些題目的測試數據。這其實都是一些沒有什么成就
感的繁瑣活。而于我最大的感受就是什么是teamwork:有著明確的目標,明確的戰術,
相互之間有著明確的共識,分工和信賴,然后為了那個明確的目標,每個人承擔自己所
該承擔的任務,扮演自己所該扮演的角色。
此外還有很多細節上討論和進步,就好比相互講題時的原則,賽前畫表格的作用,等等
,諸如此類。還比如為了討論timeexceed是不是適合去完成第一道題,我們也是一遍又
一遍的嘗試來得到最終的結論。
其實這是一個最為艱難的時期,而這個時刻也是我學習到最多的時期,或者說積累最多
的時期。在那個時候我不知道很多道理,但是在jellyfish和timeexceed的幫助下我得到
了很多的感受,在我們那支隊伍取得某種意義上的成功以后,那筆財富慢慢的顯示出它
的價值,盡管交大日后的每一支隊伍跟這一支都不一樣。也許沒有Jellyfish的那句話“
任何技術問題都是可以通過管理的方法來解決的”,我會一直認為只有找到三個跟cl,
wxl, zzp那么強的人的時候我們才有機會填平那一道題的差距;而事實上,在后來的兩
三年我們追上并超越清華靠的完全不是個人的實力。
太多太多的事情,在發生的時候我們并不理解;
太多太多的道理,在我們理解的時候只能回頭去感激生活。
posted on 2007-11-22 19:03
R2 閱讀(203)
評論(0) 編輯 收藏 引用 所屬分類:
他山之石