在打戰記之前,先說一件小事。
在比完賽的晚上,要乘車回去的時候,我們上了一架車。一會兒過了,車還沒有開。此時,有一個志願者過來,說要換車,我們跟著換了,這已經是最後一班車。
車開到一半,突然停在路中心。司機在吵,好像是因為一些工資上的問題與老闆有紛爭。志願者立即在座位起來,去問司機有甚麼可以幫忙。司機繼續發脾氣,而志願者很快便打電話給後面的聯絡人,叫另一部後備車過來。同時,他跟我們解釋出了一些事,並說很快會解決,我們都會安全。司機知道志願者打電話,很惡的問他是不是找他老闆,志願者也很耐心的解釋。
這裏冷靜的安排已令我佩服,更令我覺得他強的是,上了另一部車,在我們都有一些抱怨之際,他說,不要緊,後面還有一部車,這部不行還有一部,再後面還有一部,那部不行再有一部,所以,你們一定可以回去的。以換車的問題,化作開玩笑的方式和我們說,安撫我們的情緒。此一高招,佩服佩服。
說回今次比賽,總體來說,做題目是比較順利的,連帶來的,是隊員的心理狀態較好,也做成了良性循環。
(1) 循序漸進的開局
一開始,三份題目,拆散了一份,剩下的用作後備。我看了一看,題目都挺長,見B的長度還可以,便先看B。過了一會,GG已經開始上C。我的B也想好了,便開始在紙上寫出來。不久,C過了 (34min),我立即上B,很快便寫了核心的部分,但處理年月日的部分還未完全想好。此時,GG搶著上E,中途印了出來debug。過了sample,再隨便試了一兩個case,發現閏年的計算都可以,便交了,WA (61min)。印出來debug,E此時也差不多,交了,TLE (69min)。不久,發現B的閏年月份日子錯了,改過再交,不過都是WA,很小心的再看,原來是改的方法錯了,今次確保方法是對的,終於AC了 (80min)。
關於BST的E,不久便想到用segment tree來加速,再寫了一會兒便AC (119min)。這時,whh在看A,我在想G,因為G竟是我之前一直想寫的project,不過今次的規模比較小,但要求的是最優答案。
(2) 開始卡題的中局
whh開始上A,如果不是我未看過題目,這條應該是我做的,但反正題目不太難,給他上也沒有甚麼所謂。我出了數個test case,同時在做G。不能想到很好的優化方法,所以中間一有空檔便上機試一試效率。whh過了我的sample,再交,WA (140min),此時他印了出來,由我接手debug。他和GG討論H,他們很快得出結論,GG便去打武器。我先看到A馬行的錯,改了,都是WA (147min),之後一直在看,直到失了希望,隨便寫了數個case,測了,果然錯了,發現炮也有問題。改了再交,WA (171min),才發現車和將軍也有一樣錯,終於AC了 (172min)。很無謂的幾次WA,幸好此時罰時不太重要。
此時H也差不多,交了,WA (178min)。中間不斷想debug的方法,我上機做G,不久,最簡單的頹試便完成了。一如所料,效率太低。過程中間,改了一點H,再交了兩次,終於AC了 (202min)。
(3) 最後衝刺
過了H,G也不大進展,開始寫類似IDA*的物體,但GG說F很快可以做完,便由他上。果然,過了一會,F便好了,再試多一個case便交,AC (248min)。
之後whh和GG說了I的題意,GG說想到如何做,便在最後50分鐘衝刺。G雖然有想法,但不是100%可以過,聽GG的口吻,他好像很有信心,便由他上機,打算孤注一擲。途中,我沒有甚麼可以做,先寫G的優化版,又再看D,雖然題目很長,但其實不難。估計寫紙要半小時,上機要半小時,可惜時間不夠,也就沒有多想了。中間不斷看著其他隊,看看有沒有過到新題目,但情況變動不大,估計要進前5也不難。
最後10分鐘,看似code完,但不斷有bug,始終連sample都過不到。6題完場。
(4) 總結
得到學校季軍,算是比想像中要好,要贏的隊都贏了。當然,我們絕對有機會過到7題,甚至8題,總覺得D都可以過到的。無論如何,今次的合作與分工比吉隆坡的有很大進步,大家的心理也穩定了很多。但是進步空間還是很多,希望下一次的比賽可以更流暢吧。
沒有留言:
發佈留言