我的程式設計競賽之路 ——中國大學生計算機程式設計第一人樓天城訪談
25歲的樓天城有「中國大學生計算機程式設計第一人」的稱號,也被參加競賽的學子們敬稱為「樓教主」。他的傳奇經歷一直激勵著眾多年輕學子:從2023年開始參加計算機程式設計競賽,並連獲全國一等獎;2023年入選國家集訓隊,同年獲得ioi金獎並被保送到清華大學;2023年開始在首位亞裔圖靈獎獲得者姚期智院士的理論計算機中心攻讀博士;2023年和2023年兩次帶隊參加acm/icpc全球總決賽並獲得第二名。《程式設計師》近日專訪了程式設計奇才樓天城,讓他與我們分享一下他傳奇的程式設計競賽之路。
樓天城:小時候,我比較愛玩,並不怎麼喜歡學習。後來在8歲那年,我跟隨父母一起到清華大學遊玩。身處中國的最高學府,我不自覺地受到了感染,當時就給自己定下了童年的第乙個目標——要在學習上投入更多的精力,嚴格要求自己,將來一定要到清華大學讀書。這是童年中對我影響最大的一件事兒。經過十年的努力,現在這個願望已經實現了。
樓天城:我從高一開始學習程式設計相關知識。程式設計對於高中生來說,確實是一門特別的科目。我所開發的應用中印象比較深刻的是黑白棋。當時在聯眾的遊戲平台上,它有90%的勝率。最初設計的黑白棋只能搜尋到六層,它的「棋藝」並不理想,當時很多此類的黑白旗遊戲也能做到這一步。為了突破這一侷限,我研究了各種優化技術、博弈演算法及搜尋技術,對演算法進行了優化,使原來的搜尋增加了四層,它的計算能力、博弈水平也隨之提高了很多,一時很多人都難以勝過它。雖然這個遊戲並沒有像李開復當年寫的黑白棋那麼優秀,但對我來說,還是蠻有成就感的。另外,我還做過很多其他的應用,但大多是實現一些涉及核心的關鍵問題,並沒有作為產品公布出來。
樓天城:2023年,我第一次參加程式設計競賽,是google程式設計挑戰賽。由於乙個失誤,我與冠軍擦肩而過。大賽結束後,我非常沮喪。後來在父母和老師的鼓勵下,我下定決心要再等機會,贏取冠軍。
兩年後,直到2023年,我才有機會再次參加google程式設計挑戰賽,並在最後8分鐘趕超了當時領先於我2小時52分的南非選手,獲得了冠軍。這次大賽對我來說可以算作一次真正的挑戰。
樓天城:topcoder公開賽是世界範圍內一年一度的程式設計大賽,2023年在賭城拉斯維加斯舉行。我參加的其中兩項不同的比賽都進入了決賽,一項是24小時的類似馬拉松的coding比賽,另一項是演算法程式設計。這次比賽比較可惜的是,在最後決賽階段犯了乙個小小的錯誤,而滑到了亞軍的位置。以後再有同樣的機會,爭取能夠獲得更好的成績。
樓天城:我從2023年開始在姚期智院士領導的清華大學理論計算機中心攻讀博士學位,現在還處於學習和提高端段,研究方向主要是以組合演算法為主。總之,很幸運能夠得到姚院士的指導,這段時光注定將成為我人生中最重要的階段之一,我會用心努力做好每一天。
樓天城:可能是我們所遇到的問題不太一樣吧。我遇到的問題多側重於核心部分,往往比較抽象,對效率要求也很高,要解決它們,必須有深厚的數學基礎,從這個方面來說對數學要求還是非常高的。
樓天城:程式設計競賽是乙個「公平、刺激、酷」的腦力遊戲,除了能獲得樂趣之外,還能很好地鍛鍊自己的思維,磨鍊堅韌隨和的性格。參加了多次競賽,我真實地體會到它的殘酷性。程式設計競賽是頂尖高手之間全方位素質的較量,即使一時的狀態不佳,也會讓你與冠軍失之交臂,最終換來的將是幾年的漫長等待。但也相當刺激、公平。這也是我喜歡它的主要原因。我感覺自己很幸運,能夠接觸到這些程式設計競賽。這種比賽形式,完全符合我的思維方式。在這十多年來,無論在思維的培養還是對性格的磨鍊上,它對我都起了很大的作用。
至於建議,像我們這些靠理性思維來解決問題的人,平時過於依賴自己的計算能力,不相信定式、經驗之類的東西。而實際情況卻是,有一些憑藉經驗才能做到的事情,我們做得不夠好,只是想當然地以為計算等於一切,結果卻與目標相差很遠。所以有很多非智力因素也需要去掌握。否則,你可能會因此而落後於他人。這算是我的乙個建議。
另乙個建議就是不要把參加競賽當作上大學的乙個途徑。競賽可以幫助你提高自學能力和綜合素質,鍛鍊思維能力,也可以幫助你提高其他科目,但平時一定要注意協調好競賽與其他科目之間的關係,不要把其他科目落下,不要讓競賽成為影響正業的事情。
湖南省第九屆大學生計算機程式設計大賽題解
題目描述 我想當乙個好老師,所以我決定記住所有學生的名字。可是不久以後我就放棄了,因為學生太多了,根本記不住。但是我不能讓我的學生發現這一點,否則會很沒面子。所以每次要叫學生的名字時,我會引用離他最近的,我認得的學生。比如有10個學生 a d h 想叫每個學生時,具體的叫法是 輸入 輸入只有一組資料...
紹興市第十三屆大學生計算機技能競賽程式設計
零ac,打擾了 des f x f x 1 1.f 0 k.給出x k,求f x sol 簽到題,好翻譯好做。直接兩數相加沒什麼好說的。des 給乙個n m的棋盤,問在至少有乙個格仔為free的情況下最多能放多少個馬 free的意思是該格仔沒馬且別的馬無法一步到達該格仔 sol 若棋盤小於等於3 3...
湖南師範大學第四屆大學生計算機程式設計競賽練習
關係 time limit 3000ms,special time limit 7500ms,memory limit 65536kb total submit users 34,accepted users 29 problem 11312 no special judgement problem...