大家好,我是大賽(不是塞),好久不見,甚是想念。
這段時間斷斷續續有些學弟問我參加藍橋杯有木有一些建議,我也給了我的想法和看法。當然,網上對藍橋杯的看法不一,我就針對大學生參與競賽的目的和備戰藍橋杯兩個方面給大家分享一下。
競賽的目的
當我們報名一個比賽的時候,你要清楚你報名的目的是什麼,有目的才能有動力去變得更好成就更高。
通過競賽驅動學習:通過參加競賽提高自己視野、程式設計能力、演算法水平,很多人報名的時候都是小白的起點一點點摸索,在比賽準備的階段不斷學習,不斷進步,這個備賽的過程給自己帶來很大成長, 這也是參加競賽最大的意義。
競賽加分:參加一些含金量較高的比賽,對有些人保研加分,評獎評優加分。這裡多說一點,各個學校認可的比賽和比賽所屬等級是有些區別的,有些比賽甚至和學校有些聯絡的學校會強行認可(例如某at,某cf),如果為了加分還是推薦優先參加學校認可的比賽。還有些新的比賽但是比較水有的學校也會給加分,這類比賽一定不要輕易放過!
競厚的獎品或者獎金:有些比賽會有些誘人的的獎品或者獎金。現在,各個公司組織都想發揚光大自己的聲名,會通過自己建立一些比賽吸引人參加,可能還會有挺不錯的獎金(這類大部分都是大公司牽頭的一些比賽),競爭力相對也沒那麼大,有些公司還會對參與者送一些一年VIP或者雲伺服器之類的(加油白piao),如果自己或者身邊有小夥伴有興趣可以順勢參加(技術可以一般但一定要有個會吹會說的小夥伴),展現你強大演講和PPT能力的時候到了。
為了工作:為了得到一個較好的競賽結果,能夠新增到自己的簡歷中。很多人前期會因為比賽水而不參加比賽,但是到自己寫簡歷時候獲獎榮譽光禿禿的,只能強行湊一些(大把甚至都湊不出來),如果你學歷又不佔優勢,簡歷其他地方又沒太大靚點,真的挺容易被pass。雖然說比較公認的比賽就那幾個(ICPC、CCPC、數學建模、網際網路+等等),但那些比賽我們普通人可能真的連參與機會都沒有,如果你有非常棒的榮譽可以包裝自己那麼比較水的比賽你可以不參加,但是如果你沒啥競賽榮譽我還是推薦你參加一些潤色一下自己簡歷不會顯得太尷尬哈哈?。
檢測自己學習情況:通過參與一些競賽看看自己的學習情況如何,這類一般比較佛系。
總的來說,通過參加競賽,大部分都是能夠給自己帶來全方位、寬領域、多層次的提高,一豐收具豐收,但大家不管參加啥要放平心態,如果成績不太好放平心態下次再來,全當體驗學習的過程。
不過現在比賽種類非常多,也不要直接悶頭全報名,有的報名費不菲但認可度很一般或者方向很偏浪費時間(有很多公司的比賽可能要求使用某些自研產品可能比較耗費時間)要慎重考慮下。
當你明白這些,對於大部分人來說,藍橋杯其實還是能擊中上面的幾個點的,目前這個競賽的情況是:
不算很頂尖,但是也不是特別差,算是不錯的競賽,受眾比較廣各個層次院校的都有(上到頂尖985,下到專科院校),比較適合普通人。
你應該這樣準備
組隊學習:學習資料結構與演算法對大部分人來說本身是一件痛苦和枯燥的事情,做到堅持和自律也很難,有兩三隊友(不建議太大)一起學習、一起刷題,學習刷題上可以相互鼓勵、相互督促。還有另外一點就是學習和刷題路上可能會遇到很多坎坷,每個人可能被卡主、想不明白的地方有所不同,當你被卡主,你問一個陌生人問題,他可能不會給你解釋超過三次,但是你的隊友會順著你的思路給你糾正過來給你講10次。當然,學校如果有競賽刷題社團也可以參與,有很多學長會幫忙解答和培訓。
體系化刷題:工欲善其事,必先利其器,盲目的刷題很容易給自己帶來很多挫敗感,刷題前可以給自己安排一套學習和刷題路線。從簡單專題刷起,然後再慢慢加深,這個順序可以參考網路上有人分享的ACM(現在叫ICPC、CCPC))刷題入門順序去刷一些題。比如說可以從a+b,輸入輸出簡單開始入門,然後簡單數學題、雜湊、字串、貪心、動態規劃、搜尋、圖論、數論等等(樹狀陣列、線段樹、並查集、快速冪、博弈、計算幾何、模擬)一個專題一個專題突破。
抓重點,合理分配時間:演算法是學不完的,體系也很龐大,有些資料結構或演算法比較難、學習成本很大(數論、幾何數學等等),出現頻率非常非常低並且長期不接觸很容易遺忘,對於大部分開發同學或非ACM選手來說,不建議磕這類演算法太久,你可能還有很多其他事也要做,更建議紮實鞏固多刷一些考察高頻、重點的資料結構和演算法,去參加藍橋杯大賽、面試、機試是完全可以取得很不錯結果的。(有能力的同學後面可以自行研究擴充)。
多參加網路賽體驗: 有機會多參加一些網路演算法競賽,體驗熟悉一下競賽的流程,衡量自身的情況和不足。比如牛客、codeforce的一些比賽可以去體驗一下,還有一些學校開放自己學校的演算法競賽可以在各大OJ或者社群裡面去參與競技,讓自己成個老司機多點競賽經驗。
最重要一點(持之以恆)堅持刷題,擴大刷題量,刷的多了,存在的問題就會少了。初期猥瑣發育,踏踏實實刷題擴大題量,如果你感覺你有問題大概率是刷題量不夠導致的。中期多找方法,多歸納總結,將所學、所刷的題有個小體系的概念。堅持下去,後期就無敵了!
小技巧分享
競賽前:關注下藍橋杯歷年試題,找到藍橋杯競賽易考的高頻問題,例如日期區間計算問題,字串匹配演算法,常見動態規劃,貪心演算法,搜尋等等,經常出現在考卷上。你把最近幾年的考題考察內容全部記錄下來,按照頻率排個序,你馬上就知道自己需要加強那一塊了。建議把歷年試題搞懂,也可以找一些試題講解課程。現在準備不用太擔心,上面有不少送分題的,這些送分題考察點最近幾年的很相似比如素數、合數、時間日期、簡單數論這些一定得拿下!
練習系統首頁:http://lx.lanqiao.cn/
真題連結: https://www.lanqiao.cn/course...
競賽時候:合理安排時間,藍橋杯競賽4小時時間,題目先易後難,程式碼量和邏輯複雜的放在後面。填空題只要答案,程式碼能跑出來就行(規則允許範圍內,有的熟悉excel用excel解題)。程式設計題根據資料範圍選擇自己會的方法,有些可以通過全部測試案例的演算法如果不會,可以看下測試案例範圍用一些搜尋、列舉等方法剪枝儘量多的分。還有就是藍橋杯OI賽制競賽時候不知道自己程式碼是否真的正確,除了題目提供的測試案例很有必要自己準備一些測試樣例驗證一下。
競賽後: 放平心態,如果結果不理想也不要氣餒,堅持刷題,下次再來。
我自己本科第一次參加藍橋杯的時候,雖然入圍國賽了,學校 J 老師帶著一行23人去北京北方工業大學考點,那是我第一次去北京,也是我暫時唯一一次去的北京,當時水平在中游但是最後優秀獎都沒得(一行23人就我一個沒獎)當時回來時候還是感覺挺尷尬?,不過調整很快一次失敗不能代表你就不行了,好好的繼續原來的步伐就行了。
但這不妨礙這次競賽去拿了國一突破自己(當然是運氣比較好了,所以說運氣也是非常重要)。
結語
到這裡,本篇的分享就差不多啦,至於認不認、含金量、值得參加嗎這些問題我覺得老是糾結這些問題沒啥意思,一年一次費用也還行可以接收,還有一些同志把4小時比賽總是感覺要花他幾個月釘上去似的。
時間比較多,低年級學生可以通過參加一下認真準備學習一下,花時間刷題學演算法也不虧,如果高年級時間不多那就順勢參加一下唄。
還有一些同學會問刷藍橋杯跟刷力扣有啥區別,嗯我覺得刷力扣的目的就是為了面試筆試通關,更多關注簡單、中檔題的高效解答。而藍橋杯簡單中檔題是決定能不能拿個還不錯的獎項,如果想向頂端突破那肯定要掌握一些處理難題的能力了,在這方面刷力扣的可能會接觸不到或者接觸這類題型比較少,但是如果你即將就業我還是推薦你刷力扣為主,順便參加個藍橋杯就好,畢竟演算法在很多大的方面是通的。
還有一些小夥伴問我有木有一些藍橋杯的學習資源,我說這個本渣渣雖然沒看過但是也曾在某寶花了幾十買了好幾十G的學習資料,裡面除了藍橋杯還有一些不錯的演算法學習資源,這裡我也分享給大家,大家在我的公眾號【bigsai
】回覆【藍橋杯
】自行領取啦(活雷鋒在此不謝)。