Google Code jam 編程挑戰賽 賽後感

昨天早上7點開始,今天早上7點結束,Google Code jam 編程挑戰賽的資格賽(Qualification Round)歷時24小時,一共三題,我做對了兩題,以50分的成績進入第一輪(Round 1),只要拿到25分就可以晉級。

前幾天我上網的時候看到txj(其實我天天上網都能看到他),他問我知不知道Google Code jam,我說不知道,讓後他發給了我一個網址,我進去一看,靠,純英文,logo裏面寫着“cout<<"hello,world"<<endl;",內行一看就知道是跟編程相關的,再一看是編程挑戰賽,再再一看不收報名費,管他呢先報名再說。在我的慫恿之下,txj也報名了。

因爲這個比賽是真對編程愛好者的,只要13週歲以上非google員工都可以報名,我一看這條件就知道高手如雲,也沒對這個比賽抱有多大希望,當時想的就是想感受一下,畢竟這種免費的又適合我的高水平比賽不多。當時覺得能過資格賽我的任務就完成了,而且這幾天事情比較多,也沒有刻意的去準備。

比賽時間是Jul. 16 11:00pm UTC,推算一下是北京時間7月17號早上7點,於是我6點起牀,6點半就坐在電腦前看着主頁上的倒計時等待比賽開始。

七點比賽準時開始,暈,我卻不知道怎麼登錄進去(英語看得就是沒中文順眼),頓時一陣冷汗……經過一場尷尬,總算是見着考題了。金山詞霸早就侯在那兒了,等着我隨時派遣。比賽過去9分鐘,一哥們兒就把第一題做好了(ScoreBord是隨時更新的),我靠,第一反應就是他肯定是說英語的人,因爲我連題目還沒看完。

比賽過去半小時,在金山詞霸的協助下我算是把第一題的題目讀懂了,是關於拯救宇宙的,其實只是個噱頭而已。接下來就是想算法了,想算法的過程比較難以描述,反正算法就是在我天才般的大腦皮層的溝回裏面滾了幾圈就想出來了,儘管可能不是最優算法,但肯定是可行的算法。編碼(俗稱敲代碼)的過程就簡單的多了,再說編碼對於我來時是沒什麼挑戰性的。這個算法用C#寫的,不到100行,核心算法不過40行,要是換成C寫的話也最多兩三百行就能搞定,所以說編碼不是問題。其實關鍵是想算法和算法的實現,我在這個程序裏用到了數據結構中的隊列,算是我第一次把數據結構的知識應用到實際解題中去,也不枉我數據結構97分的成績,哈哈。

調試過程是整個程序最關鍵的,我寫完程序下載了3次數據,我把結果提交上去都是提示incorrect,因此有了3個wrong tries,也被罰時12分鐘。這裏有很多技術,比如設置斷點、單步跟蹤之類的,不詳說了。反正發現幾乎都是筆誤,算法沒有問題,畢竟我的邏輯思維還是比較縝密的。第四次下載數據的時候我有點緊張,上傳結果的時候更是緊張,結果顯示了綠色的correct,我興奮的一下就跳了起來(當時家裏沒有人),此時距離比比賽開始已經過去兩個半小時了。我已經有5分了,在ScoreBord的裏面可以看見我了,我又下載了20分的large數據,上傳回去等待着比賽結束出結果。就這樣,第一題算是搞定了。

第二題是求列車時刻表的,難度也不大,在我能力範圍之內。不過算法還是想了好一會兒,在嘗試了幾組數據之後覺得可行了便開始編碼。然後下載了兩組數據調試,結果是incorrect,這次不是筆誤了,是算法的問題,邊際情況考慮的不是很到位。經過兩次修改,第三次提示correct,這個時候不像第一題那麼興奮了。此時已經是12點半了,過去5個半小時了。我帶着一絲得意去弄中飯吃了。

吃飽了繼續看第三題,蒼蠅拍問題,說白了就是道高中平面幾何題,但是我不會,想死了想不到可以用什麼算法。這個時候就犯困了,不由得就躺牀上睡着了。四點鐘起牀繼續想還是沒有頭緒,一直到晚上11點,諮詢了諸多同學無果的情況下,我放棄了。

總結一下,這次比賽能做出兩題出乎我的意料,能通過資格賽更出乎我的意料。我預計我是止步Round 1了,但是我還會努力去比的。或許明年我會更有準備參加這個比賽。

差點忘了說txj的情況,算了,還是不說了,想到就搞笑,想知道就自己去問他吧,哈哈哈哈。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章