1. 程式人生 > >寧夏ACM-ICPC總結

寧夏ACM-ICPC總結

        這是自己第三次參加現場賽了,第一次在秦皇島打鐵,上個月在西安拿了銅,這次還是想著希望能拿個銅吧。

        熱身賽因為時間僅有一個小時,而且預裝的codeblocks頻繁地無端出現卡頓與閃退的現象,即使幾道題我們都想到了解法,但我們一道題都沒有寫出來,對我們這心態造成了一定的影響。還好用心的主辦方連夜將codeblocks更新為相對穩定的一個版本,第二天的正式賽中這些問題都得到了解決。在正式賽中,我們發現與以往的比賽不同的是,這次除了提供三份英文試題,還額外的提供了一份中文的譯文,這給我們帶來了一定程度上的便利。我們開始分開讀題,我拿了一份英文試題,很快地讀懂了L題的題意,並跟隊友Luke進行交流,發現是一個區間問題,不過資料量較大,雖然以前接觸過相似的題,但並沒有把握在較短的時間內寫出來,遂暫時擱置,這時隊友WGY率先找到了一個有把握AC的簽到題C題,與隊友進行交流後並開始編寫程式碼,我便開始讀其他題,程式碼很快編寫完畢,此時已經有兩三支隊伍通過了這道題,但我們還是覺得多測試幾組資料,再提交上去會比較穩當,資料測得差不多了,在比賽開始的第八分鐘我們將程式碼提交,很快我們得到了判題程式返回的一個綠色的Yes,此時我們隊伍的排名是第12名,之後我們繼續分散看題再進行交流,我們三人交流了多道題目,然後Luke開始敲一個幾何題B題,

我們在這道題上思路很明瞭,不過第一次提交我們得到了一WrongAnswer,我想應該是精度的問題,因為造成了一次罰時,我們都不敢再輕易的提交了,後來學長想到另一種寫法並不需要用到PI,改動好提交,得到了一個Yes,此時時間過去了70餘分鐘,我們排在了五十名左右,處在銅牌區。我們看到榜單上已有多道題目有人AC了,也有隊伍AC四題了,我們感到了一些壓力,也立刻開始思考AC人數多的題目,我開始思考目前AC人數最多的H題,乍一看應該是個簡單的貪心題,思考了一段時間,並沒有想到正確地貪心策略,並開始和WGY討論一道圖論題,

題目很清晰,求最短路,我便開始將dijkstra,Floyd這些常見的最短路演算法都想了一遍,考慮到資料量較大,應該是使用離線的Floyd演算法,但我並沒想到合理的寫法,

經過一段時間的討論後,WGY想到了將Floyd演算法進行變形,我很贊同他的思路,覺得是這道題的正解,他開始敲程式碼,提交,AC。然後隊友Luke和WGY進行了無縫對接繼續編寫A題的程式碼,我繼續到一旁思考H題,此時我們對面的隊伍已經通過了5題,在距離比賽結束還有不到一個半小時的時候我們第四次提交了A題,

終於通過了A題,此時我們已經知道至少能拿到銅獎了,但我們並沒有一味地沉醉在這種喜悅之中,而是試著靜下心了繼續思考題目,此時我的H題也有了一些眉目,

我似乎想到了正確地貪心策略,試過多種不同的資料都可以得到題目要求的結果,我便開始編寫程式碼,很快編寫完畢,提交後通過了,原來這道題並不是很難,

但是自己一開始想錯了方向,後面才想到正確地策略,此時距比賽結束僅有一個小時了,我們排在四十名左右,最後還有隊友Luke在思考一道概率DP題,但我和WGY都沒有接觸過這個演算法,所以難以和他交流思路,我們在一旁看其他題目,並給隊友加油打氣,我們相信他可以寫出的,經過多次的除錯,優化,排錯,終於通過了題給的樣例,

這是離比賽結束已不到十分鐘了,我們趕緊將程式碼提交了上去,返回了一個綠色的“Yes”,我們三個同時不由自主的叫出一聲“Yeah”,激動之心溢於言表。

由於比賽並沒有封榜,我們可以看到我們最終在140餘支隊伍中排在了第24名的位置,位於銀牌區,我們非常激動,這是我們個人的第一枚銀牌,也是學校在此類比賽中的第一枚銀牌。

   經過這次比賽,我看到了我們的進步,也再次感受的ACM-ICPC這項賽事的真正魅力與樂趣所在(打ACM最激情的時刻,就是萬念俱灰,你又不捨得放棄,不斷優化、排錯,最後返回Accepted的那一刻)。

我也感受到團隊信任與合作的重要性,這次配合的很好,我們真正的體會到了1+1+1>3這個真理,同時我們也發現了自己和強隊之間的差距,自己也有很多方面需要多加練習,做題的速度還是比不上那些強隊,還有很多演算法並沒有瞭解過,導致不能和隊友進行交流。我們會在即將到來的暑假期間努力提升自己,好好準備下半年的區域賽。