天天看點

CSP滿分說 | 華南師大嚴雍澤:一個普通人的算法競賽故事

作者:CCFvoice

華南師範大學嚴雍澤在第33次CSP認證考試中獲得滿分,第34次CSP認證考試将于6月2日舉辦,報名正在進行中。每年CSP高分考生(200分及以上)均可報名參加CCSP競賽,CCF不定期邀請CSP高分和CCSP獲獎選手分享經驗,希望能夠幫助同學們取得更大的進步。

CSP滿分說 | 華南師大嚴雍澤:一個普通人的算法競賽故事

非常歡迎更多CSP優秀學子分享自己的寶貴經驗,聯系:[email protected]

初識算競

大學剛開始時,我就聽說了算法競賽,并被這類比賽的賽制深深吸引住了。在這種情況下,我開始學習C++文法和一些基礎的資料結構和算法。由于我大學前沒有接觸過程式設計,是以我的進度比較慢。相比那些在高中甚至國中就接觸過相關知識的同學,我意識到了和他們的差距。

後來在大一的第二個學期,我們學校組織了CSP認證考試的統一報名,但是當時我水準有限,不太敢去報名,我打算等到大二水準提高了再報名參加考試。回想起來,其實完全沒有必要這樣做,因為大學裡機會非常有限,很快就錯過了。接着,在同年的4月,我們學校舉辦了一年一度的程式設計算法競賽校賽。那時候我沒有隊友,就拉上了同班的兩個同學一起參加比賽。比賽即将結束時,我們仍在調試一道題。最終,總算在結束前幾分鐘這樣通過了那道題,我到現在還記得看到螢幕顯示“Correct”字樣時和隊友擊掌的興奮。

後來,或許是出于校賽難忘的經曆,又或許是出于對算法競賽的熱愛,我繼續将我的時間和精力投入到其中。随着我水準的不斷提高,我和兩位學長組成的隊伍迎來了我們隊的第一次ICPC之旅——合肥。然而,很遺憾的是,我們打鐵了。

CSP滿分說 | 華南師大嚴雍澤:一個普通人的算法競賽故事

2023ICPC合肥站現場圖檔

在意識到自己的不足後,我更加努力地投入到日常訓練中。這段時間裡,我的Codeforces Rating也在不斷增加。不久之後,學校釋出了第33次CSP認證的報名通知。懷着第一次參加CSP認證也很可能是大學期間唯一一次參加的心态,我報名參加了認證,并且非常幸運地在這次認證中取得了滿分的500分成績。這個成績給了我巨大的信心,讓我可以更加堅定地投入到下一個賽季的準備中。

CSP滿分說 | 華南師大嚴雍澤:一個普通人的算法競賽故事

第33次CSP認證考試成績單截圖

如何備考CSP

CSP認證由5道題構成,每道題滿分100分,總分500分,每題通過部分測試點即可獲得部分分,每題限制大概是30多次送出,取最高分。

前兩題一般考察基礎的代碼能力,不涉及很複雜的算法,如果熟練運用STL,寫得會很輕松。通常要争取在半小時内完成前兩題,為後面的題目留夠時間。第三題一般是一道大模拟,它是考生分數的分水嶺,不僅題面長達1~2頁PDF,碼量也比較大,非常考驗考生的代碼功底。在緊張的考試環境下,想要完全了解題意并完美實作拿到第三題的滿分,對大部分人比較困難。

第33次CSP認證的第三題是一道背景為“化學方程式配平+線性代數高斯消元”的題,考生需要模拟高斯消元的步驟,并最終求出矩陣的秩。

第四題和第五題就需要對一些競賽常用的算法有所了解,才有可能解答出來。這些考點包括但不限于:資料結構、圖論、DP等。然而,如果隻打算争取獲得20~50分的話,并不需要完全掌握這些算法,隻需要掌握一些常見的優化方法,并且對于資料量較小的部分能夠熟練運用STL來解決問題就可以了。

對于日常練習的話,可以去官方的模拟考試裡找一些真題來做。如果追求更高的分數,可以去專門找一些算法競賽的題來做,并學習一些常見常考的算法,這将有助于提升算法能力和解題技巧。

CSP滿分說 | 華南師大嚴雍澤:一個普通人的算法競賽故事

模拟考試(https://cspro.org/)網址

同時,我們要善于利用考試機制,即允許多次送出并即時回報得分。我記得我當時最後一題一開始交上去的代碼傳回記憶體超限,後面我通過多次送出确定了問題所在,對代碼略作修改後送出才通過了那題。這個機制給了我糾正錯誤和提高代碼的機會,對于克服挑戰非常有幫助。

結語

非常感謝CCF能給我這個分享經曆與感悟的機會,同時,我也要衷心感謝CCF組織這樣一個公平規範的認證考試。我真誠地祝願CSP越辦越好,為推動中國計算機教育的發展做出更大的貢獻。