2021 年 4 月 28 日,藍橋杯成績出來了,c++ 組 b 組省一,不過大學時間也所剩無幾,所以想寫一篇經驗貼,供同專業的學弟學妹們參考,
我首次基礎編程是大一下學期的 VB 課 (很難想象 2019 年還在學 VB,不過低一級的學弟學妹們就學 Python 了),VB 課只學習了最基本的編程,包括順序結構、回圈結構、分支結構以及自己寫函式,
隨后在大一暑假我自學了 C 語言,僅限于用 C 語言實驗順序結構、回圈結構、分支結構,期間硬啃譚浩強老師的那本紅書,參考過浙江大學翁愷老師的 mooc,毫無疑問,這是沒有效率也無意義的自學,如果只是看看書編程是學不會的,幸好在大二開學之后教授我 C 語言的吳老師讓我自己去刷 PTA 乙級的真題,開啟了我學編程的新大門(感謝吳老師),
因為大二上學期我著手去做了一個小課題,第一任務是搞研究寫論文,因此刷題速度緩慢,大概一個學期過去了僅僅刷了五六十道 PTA 乙級的真題,刷題是痛苦的,特別是一開始什么都不懂的情況下,每次遇到不會的題都只能去 CSDN 找題解,看別人的代碼找思路,但是堅持下來效果也是不錯的,在2019 年藍橋杯校級模擬賽獲得了全校第 4 的成績 (很多大佬沒有打,題目也簡單,幾乎不涉及什么演算法和資料結構),
大二寒假的時候我仍然在寫我的論文(寫論文真的太難了嗚嗚嗚),期間在學資料結構,資料結構我一開始也是硬啃書,后來發現這玩意兒光看書是真的看不懂,所以自學期間參考了浙江大學陳越老師的 mooc 以及青島大學的一個 mooc,在學習資料結構期間,癡迷于徒手硬寫指標,一度感嘆為什么這東西這么麻煩,并死磕 PAT 上面的資料結構習題集,到最后大約是哈希表,紅黑樹那一部分沒有做,剩下的都用資料結構書上的方法做出來了,
寒假結束,大二下學期課業負擔極重,并且在藍橋杯官網上的習題集刷題并不順利,所以編程的練習停滯不前,期末考試前考了藍橋杯,感覺自己都會做,但出來只有省二,具體原因我在后面會說,
暑假期間我仍然沒有寫代碼,在干什么呢?我改了一暑假論文,和審稿人斗智斗勇,大三上學期我寫代碼了嗎?沒有,如果說有的話,那就是打了 2020 年的天梯賽模擬賽和正賽 (我是在比賽練習寫代碼的個人練習生),所以 2020 年的天梯賽只打了不到 100 分,L2 直接爆 0,
說了這么多廢話了,重點來了
為了 2021 年的藍橋杯和天梯賽,我大三寒假期間必須要做點什么了,比賽總是慘淡收尾,那也太菜了,所以我在寒假期間刷了洛谷官方題單,

大概是刷了這么多題,那么這時候一定有人問了,你怎么刷這么多入門的題?是不是在刷 AC 率?
我鄭重地回答,不是,因為大半年沒有認真寫過代碼的我真的不會了,我必須要從最簡單的題開始找刷題的感覺,下面我就詳細寫一寫我從今年 1 月份到 4 月份的刷題經驗,
首先,我學習了 c++,如果你要打程式競賽,請你一定要學習 c++,因為不會 STL 和會 STL 就是天上地下,從 c 語言到 c++ 我大概多學習了輸入輸出,for回圈的小細節,結構體變數的異同以及 STL 庫,STL 庫我是跟著 B 站上的黑馬程式員的視頻學的,包括 string, vector, list, queue, stack, set, map 這幾個容器以及 algorithm 這個演算法庫中的常用演算法,與此同時我刷完了洛谷入門題單,
隨后,我開始刷洛谷演算法 1-x 系列的題單,其中二分查找沒有刷,剩下的除了太難的都刷了,刷完這些我終于知道了我為什么 2020 藍橋杯只有省二了,什么題都是暴力模擬,誠然能拿一部分分,不用擔心爆零,但是也絕對走不遠,沒有人講自己刷這些題其實是很困難的,進度也不快,每次遇到不會的知識模塊都在洛谷的題解里面學習新知識,貴在堅持,
刷完這些之后我開始用我學到的 STL 容器刷洛谷資料結構系列題目,注意,和我之前刷 PAT 資料結構演算法題不一樣,我再也沒有寫過指標,要么用陣列模擬,要么用 STL 容器, STL 固然會慢一些,但是方法不會出錯,寫起來也更加快了,
刷這些的時候應該已經開學了,這學期我刷完洛谷動態規劃的幾個題單之后我就開始刷藍橋杯真題,在 Acwing 和 new oj 這兩個網站,藍橋杯官方那個是假的,沒有必要去刷,大概刷完近幾年藍橋杯真題之后藍橋杯也就來了,2021藍橋杯很難,我打完比賽整個人心態也崩了,但是成績出來之后結果還是不錯的,說明刷題還是有一定的效果的,
時間又很快到了天梯賽,這一屆天梯賽題較為簡單(不會的題我也是真不會,罰坐半小時),所以打的也不錯,達到個人預期成果,而這次天梯賽打的不錯我覺得在于我刷完了前幾年 大部分天梯賽真題、洛谷官方題單的入門模擬題,基礎和刷題都很重要,
說的可能有些混亂,也有點沒有條理,下面我總結一下,
- 請一定重視基礎,編程語言的基礎以及編程競賽的基礎,如果感徑訓礎不好,請去刷題,直到你刷簡單題又快又對的時候,恭喜你,你的基礎過關了,
- 請重視資料結構,你可以不會寫指標,不會寫鏈式資料結構(當然考試的時候請忘掉我說的兩個不會,也別噴我,因為我資料結構 99,現在也是真的不會寫),但是請你一定要搞懂演算法競賽需要的資料結構的原理,因為你可以借助 STL 庫實作大部分資料結構,
- 請重視演算法的基礎,最基本的演算法構成了一道道題解的基礎,你連最基礎的演算法都掌握不了(BFS,DFS, 貪心,簡單的動態規劃等等)你用什么去寫難題呢?洛谷官方題單不錯,對于不打 ACM,專注于藍橋杯和天梯賽的同學可以考慮,
- 請堅持刷題,洛谷,PTA,Acwing,new oj都是很好的平臺,對于我們絕大部分人來說編程練習往往是正反饋的,練了就有,不練就無,遠遠達不到 ACMer 的瓶頸期,我從學習編程到現在可能也就刷過六七百道題,這點訓練量一個暑假+一個寒假差不多就能出來,
- 請多交流,閉門造車是不可取的,可能別人隨口一句就能節省你半天的時間,
拿獎不難,拿有含金量的獎不簡單,想好自己想要的是什么,再做下一步,最后,祝學弟學妹們在程式比賽上越走越遠,編程比賽的經歷一定會受益終身,
2021年04月28日
賈梓航
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/281426.html
標籤:其他
