藍橋杯軟體組如何混進省一

2021-03-09 12:01:43

0、藍橋杯介紹

為促進軟體和資訊領域專業技術人才培養,提升高校畢業生的就業競爭力,由教育部就業指導中心支援,工業和資訊化部人才交流中心舉辦藍橋杯大賽。十一年來,包括北大、清華在內的超過 1300 餘所院校,累計40萬餘名學子報名參賽,IBM、百度等知名企業全程參與,成為國內始終領跑的人才培養選拔模式並獲得行業深度認可的IT類科技競賽。(官網所說的)
在這裡插入圖片描述

1、前言

對於剛學完C\C++或java的同學們,想要參加一場比較大型的程式設計比賽而且還可以給自己提升一些自信心的,那麼藍橋杯軟體組便是一個很好的目標,距離第十二屆藍橋杯大賽還有一個多月的時間,但是有好多第一次報名了藍橋杯的同學們並不知道如何準備,那麼本人根據去年疫情在家自學準備藍橋杯的親身經驗總結出了一些建議給大家,並且告訴大家應該如何在一個月時間內擠進決賽。
本人是在大一時候參加的藍橋杯軟體B組,因為疫情的原因大一下學期全部是在家中度過的,而學校中的C++課程也是以網課的形式來進行教學,所以本人基本是零基礎入門程式設計,之後獲得了藍橋杯軟體B組的省一等獎,所以此篇文章主要是寫給零基礎入門程式設計、剛剛入門程式設計沒有做過演演算法題和想在今年的藍橋杯中獲得省一等獎但程式設計能力並不是很強的同學們(本文章只適合小白,大佬可以不用向下看了)

2、學習資料推薦

2.1網課推薦
(1)完完全全的零基礎小白並且想快速對程式設計進行了解的網課推薦:B站小古銀C++入門教學
本人最初在家中學習C++也是看的小古銀up主的視訊,因為當時對程式設計瞭解的非常少再加上大學課程也沒有開設C++教學課程,所以只能自學C++,發現好多C++課程都以理論課開始並且有些枯燥有點勸退,直到發現小古銀的課程,小古銀的課程包括軟體安裝基礎語法教學簡單程式設計題的講解STL的簡單函數的使用只有十幾個小時的課程並且還自帶字幕,即使是沒有接觸過程式設計的同學們也可以在短時間內學會C++的基礎語法並且可以開始自己嘗試做演演算法題。
在這裡插入圖片描述

(2)已經在大學課程中學會了C\C++的語法基礎入門想進一步提高的網課推薦:黑馬程式設計師C++零基礎教學
黑馬程式設計師的C++入門課程我認為是一個非常全的C++課程了,課程裡面包括基礎語法教學經典演演算法題類和物件檔案操作STL很多經典小專案的講解課程總共52個小時,但是隻為藍橋杯做準備的話課程可以大大縮短,其中的類和物件、檔案操作和經典的專案講解都可以跳過。
在這裡插入圖片描述
(3)適合零基礎演演算法的同學們的網課:零基礎學演演算法這個網課裡面很簡短的介紹了大部分基礎演演算法,可以短時間內學會對這些基礎演演算法進行使用。
在這裡插入圖片描述

(4)藍橋杯官網每年題解:藍橋杯官網課程裡面有著每年的題解,在比賽前一個星期時候一定要去看看這些題解,瞭解一下藍橋杯的大概題型。
2.2演演算法書推薦
(1)學習起來最為有趣的演演算法書《啊哈!演演算法》,此書中講解了各種排序棧佇列連結串列暴力列舉深搜廣搜最短路徑等演演算法,這本書我是在藍橋杯還有一星期開始時候才知道的一本書,當時看到感覺非常後悔沒有早點看到這麼好的演演算法書。基本每天看完一章學習一個到兩個演演算法再做幾道相關簡單的演演算法題,半個月的時間就可以沖沖決賽。
在這裡插入圖片描述
(2)最為經典的演演算法書《演演算法競賽入門經典(第2版)》,這本書雖然寫著是入門書,但是完全不適合零基礎或者剛剛入門的小白們看,這本書前一半可以在準備藍橋杯時候看一遍,對裡面不是很理解的演演算法完全可以跳過,因為藍橋杯大部分題都是暴力列舉,尤其是省賽的時候,好多都並不是真正的演演算法題,所以只需要看那些能夠自己理解的演演算法題就可以了,但並不是看到不會的演演算法題就跳過,一定要自己思考半小時左右,如果感覺自己還是理解不了,那這樣才可以跳過。
在這裡插入圖片描述

2.3推薦刷題網站
比賽之前一定要刷完至少四十道的演演算法題(包括簡單題),如果時間充裕還可以繼續刷,最好去刷那種兩個小時以內能做出來的演演算法題,不要一道題做一天,可以選擇多做一些找規律的題,因為藍橋杯總是愛出類似「趣味數學題」,這樣的題型每年都會出。
(1)資訊學奧賽一本通
與小古銀相匹配的刷題網站,裡面簡單的入門題型非常多,對於剛學完基礎語法的同學們做這樣的題最合適不過了,好多題都是十幾分鍾就可以做出來的,刷這樣的題主要目的就是鞏固學習過的語法和對程式碼的熟練度,因為高中我們就知道學會一個知識點只有做過了相關的題型才知道這個知識具體怎麼用(這個網站只適合開始為了熟練程式碼來進行使用)
(2)計蒜客
這個網站算是設計的比較人性化一些,對於有一些演演算法基礎的同學就可以來這個網站刷題了,刷上十幾道題就可以了,因為裡面有不同演演算法的分類,可以進行專項訓練。
(3)藍橋杯練習系統
畢竟是來參加藍橋杯比賽,對於官網的演演算法題當然還是要來刷一刷的,本人當時是不知道藍橋杯還有練習系統,所以知道藍橋杯前兩天才知道有這個系統,所以並沒有在這個網站上進行刷很多題。

3、比賽小技巧

3.1題型瞭解
對於第一次參加程式設計比賽的同學們,一定要知道藍橋杯有著五道填空題和五道程式設計題,對於填空題,基本是可以全部做出來的,但是也可能有一道會難一點,由於藍橋杯題型多是暴力列舉題型,而且時間又非常充沛,那我們完全可以把編譯器當做一個計算器來使用,之後用筆將各種出現的特殊情況記性手寫在紙上來分類考慮,就像去年的試題D :跑步訓練,這題如果沒有思路或者害怕算錯,那我們可以用電腦上自帶的日曆來進行「手算」,將每一年這樣的考慮。
對於程式設計大題,一般前兩道題是非常基礎的題,一定要做出來並且保證沒有特殊情況沒有考慮到,因為比賽時候只能提交答案或程式碼,不知道正誤所以一定要保證自己能做出來的題都是正確滿分的,藍橋省賽完全就是比的程式設計基礎,並不需要什麼高階演演算法。
3.2難題的解決辦法
因為是比賽,肯定就會有一些難題,那麼當我們已經把自己會的題都做完了怎麼辦呢,我們就應該去看這道題的【評測用例規模與約定】,比如去年的試題H :字串分值,這道題的評測就是
對於20% 的評測用例,1 ≤ n ≤ 10;
對於40% 的評測用例,1 ≤ n ≤ 100;
對於50% 的評測用例,1 ≤ n ≤ 1000;
對於60% 的評測用例,1 ≤ n ≤ 10000;
對於所有評測用例,1 ≤ n ≤ 100000。

雖然我們可能沒有思路做出這道題,但是我們可以只考慮1 ≤ n ≤ 100或者1 ≤ n ≤ 10的情況,把這種很少的評測用例來說,我們完全可以用if()語句給出相應答案,這樣也可以得出點分數。

4、結尾

對於題目中說的如何混進省一我已經完全把我自己在大一準備藍橋杯的東西寫了出來。我目前也只是一名普通一本大二學生,因為在大一時候參加藍橋杯只是為了混一個省三等獎,但是結果出來的時候沒想到得了一個省一,因為本身在本校ACM戰隊也是一個小菜鳥,並沒有學會很多高階演演算法,甚至連很多基礎演演算法學的也不是很細,可恰恰藍橋杯就是考一些暴力列舉基礎題型,便成功混到了一個省一。
最後祝大家一個月後都能在藍橋杯中成功獲得省一等獎,能夠去北京參加決賽。
文章中有不妥的地方還請指教。