關鍵詞: ACM 北師大 2010 校內賽  總結 0.o_stO_(*^_^*)
 

一點半正式比賽開始,拿到題目后,我們原本打算按珠海賽的計劃分工讀題,無奈看見水題實在是順著排的,導致我們不得不集體看前面的題目。當時自己拿到題掃了一眼目錄,看到“二叉樹”三個大字,以為CC老師出裸題,于是立馬開始讀題,讓劉曉佳和石文輝研究其他送氣球的題目。
這時候輝哥讀完A題讓我第一個敲,說是可以壯士氣,于是我在完全沒看過題目的情況下聽輝哥講完就敲了,hash查找A之。
之后繼續攻E,題沒讀完曉佳和輝哥就說已經確定了B的寫法,于是再次不用讀題,聽輝哥講完就敲了。取出qsort模板,瞬間A之。
提交B之后繼續攻E,題目讀完發現不是裸題更明顯不是考二叉樹,而我一看到是數學題,又本能的想先放一放,于是改讀F題。這時候曉佳明了C題,于是換人敲代碼,似乎敲得挺慢條斯理的,導致我們另外兩個人也悠哉游哉。這時候我已經決定攻F,輝哥研究D題。經過一段時間之后曉佳說C過掉了,我抬頭看表,切前三題用一小時,時間充裕。
F題讀完之后,粗略規劃了下算法:構建N叉樹,因為對樹的最小染色數就是二,解法便很明顯了,對樹做層序遍歷,分別求出偶數樹深和奇數樹深的節點數,枚舉與價格的乘積即可。算法確定之后,又考慮到此題不是給09的做的,保險起見還是等隊友把基本題目都過掉再寫好了,于是轉身問輝哥D題的進度,輝哥說有想法但是比較麻煩。我覺得模擬題雖然麻煩但應該一兩個人就能應付了,于是叫曉佳和輝哥一起考慮D題,而我則另外去考慮E,結果這個決定鑄成本次比賽第一大錯,以后有教訓了。
看完E題,用稿紙模擬了幾個深度,仍然找不出規律。我也不確定是存在遞推式還是有直接的f(a,b)。這時候我看了下兩人的情況,他們已經開始敲D題的代碼,但是敲得很慢。于是我問他們這題有完全的把握沒有,他們說還好,試一下。聽完這句話我就大概猜到麻煩了,因為兩人是很少這么說的。但因為我也沒讀過題,所以覺得也許真的是很麻煩的模擬題,想到輝哥平時模擬題的正確率的確比我高,于是交待他們一定要想清楚了再寫,然后就考慮我的了,這時候一個半小時過去了,兩邊都不太有頭緒。
大概再過了十幾分鐘,我看看表,問輝哥什么情況,輝哥說寫完了但是樣例調不過,于是我讓曉佳過來和我一起考慮E題,中途試敲了一次O(n)的逆推,預料之中的TLE。
再過了十幾分鐘,E題毫無頭緒,于是我不得不起來看看其他隊伍的情況了:大量09的隊伍通過了D題!不得了,一個小時過去了而我們的隊伍一題的進度都沒有!看看輝哥,輝哥似乎還是沒找出錯誤,于是我決定有必要開新題了。因為E題實在沒有頭緒,所以我決定留給數學功底好點的曉佳繼續想,自己開始在草稿紙上設計F的代碼。結果邊寫邊發現這代碼實現起來遠沒有我想象的復雜,十幾分鐘就寫完了很短的完整品。這時候我要輝哥開半個屏幕繼續查,而我就把F的代碼敲上去,敲完之后測試也一路順風順水,于是在兩人的慫恿下,拜了拜曾哥就交了。三十秒之后打開界面,一個綠油油的YES!!!
這個YES可謂我們隊伍的轉折點。
不能不說,F題的AC讓我們隊伍信心大增。我這時候終于可以回來和兩人一起攻D了,這時候比賽已經過去了三個小時,中間有一個小時的時間是一點進度都沒有,而有將近半個小時的時間(也就是我手寫F題的時間)我們隊伍的鍵盤是閑置狀態!對于出現了這種情況,我知道是自己安排分工失誤造成的,我應該承擔責任。
靜下心來細讀完D題,一看這個結構,第一反應是用數組隊列或者指針鏈表做,再稍微細想了下代碼的實現,發現確實不算復雜。而最重要的是兩人如今的程序已經被調到不堪入目的樣子了,于是我提議讓我重寫D題,這時候還有45分鐘。
十五分鐘后寫完單鏈表的做法,開始調試。第二組數據卡之,從頭想了一遍思路,確認沒有錯誤,于是開始排BUG。最后發現數字與串之間的空格沒有沖掉。改完再測,這時候詭異的情況開始上演,單組測試數據輸入的時候無誤,但連續輸入的時候就會出錯!癥狀詭異到無法從字面上看出錯誤來,于是不得不下斷點去跟蹤,費盡一連串無法形容的周折之后,輝哥發現是我把表頭free()掉了兩次。改之,希望降臨。
這時候看看表,17:17分,還有十三分鐘,曉婷能不能看到我們拍方大同回來,基本就看這一次提交了。于是在曉佳和輝哥的注視下,我確實是手有點顫抖地點下了submit……
在那十幾秒的時間里我們三個人把曾哥春哥佛哥都拜了個遍。
最后的最后,那個“D Judge YES”,帶給了我們三個人第二聲發自肺腑的尖叫。
 
--------------------------------------------------------------------
這次比賽下來,有好有壞,好的方面就是,我們隊伍的正確率是百分百。聯想到自己做英文題目時的悲慘情況,就能得出一個清晰的結論:\
 耐心*[明了題意+(清晰+完整)*的思路]=AC。
當然這次比賽下來也暴露了很多的問題,首先是我們的人員分工中途發生了不合理的現象,導致鍵盤被完全閑置了半個多小時,我太過于執著自己的兩道題目,而沒有顧及隊友,使得兩道題目在最后一個小時才先后被過掉,在時間上已經輸掉了不少。如果當時自己先放下E題去幫忙看D,我們隊伍的總耗時絕對不會是現在這樣結果,而且還能有更多的時間去考慮別的題目(其實在最后幾分鐘,曉佳在看完H題之后,很認真的告訴我,她在當年高中的數學試卷上做過類似的問題……  Orz )!!!
  然后是關于出錯調試的問題,這次隊伍在D題上的調試值得商榷,花掉了太多的時間并且始終沒有調出原因來,這一點我們全體隊員都有責任,今后再遇到類似的問題時,必須得懂得果斷重寫了。
 其次,自己在數學題上的發揮也十分不好,一開始就產生了本能的逃避心理,實在是不應該。我也知道數學題是可以拉開排名的題目,以后自己一定要下更多功夫在這上面了。
最后自己得出的一點教訓就是,即使是ACM的比賽,個人英雄主義也是無益的,隊員的最終目的應該是要讓隊伍的整體成績更好,而不應該純粹為了讓自己發揮得更出色。
以上各點,自己今后一定謹記。