如何準備藍橋杯,以及現階段一些迷茫?

本人坐標某東部大省渣二本計算機科學專業,自學過部分C語言和JAVA(略渣,教材上的習題都能獨立完成),知道自己現階段水平有限,想試水藍橋杯藉此認識更多的大牛。

問題如下:

1.學校里有社團組織打團的,但他們進度太慢(一天到晚學的東西,閑時,我教明白知己只用了1個小時),並且有些高傲,我不太喜歡這種氛圍,所以我是否要參加藍橋杯個人比賽並且要注意什麼?

2.我到底應該選擇java開發還是c程序設計,並為此熟練掌握哪些知識?

3.為了更好的打下計算機科學的基礎,有什麼好的書或博客或網站值得推薦(除CS50),現在我雖然學計算機科學,但安排相關課程只有一個c語言老師,幸好這個老師在c實力很強大,能夠及時解答我在c上的問題,但其他她不能幫助我了。


本人大一開始打藍橋杯,大一省二,大二國二(差點國一),大三國一,學校ACM隊(如果能算ACM隊的話)本年級唯一成員,和學長兩人組隊區域賽打了兩年鐵。

由於知乎昵稱就是本名,匿了。

1.首先學好C語言,至少要知道指針是什麼,怎麼使用;

2.計科專業大一下的專業課裡面應該不會少了《數據結構》這門課,數據結構非常重要!整本書的知識點全部掌握,就能了解到結構體以及各種數據結構的使用,了解到各種排序演算法的實現,也能對時間空間複雜度有一個基本的概念。

3.懂了數據結構,就可以開始學習演算法了,《演算法導論》這本書可以多啃啃,這是一個比較漫長的過程,真的完全掌握需要大量的訓練。如果能全部啃完,你就基本算得上是一個合格的ACMer了,藍橋杯就是小菜一碟。目標僅僅只是藍橋杯的話,學好遞歸、分治、貪心、動態規劃就夠了,拿藍橋杯國一就只需要這些,不過暴力遞歸轉動態規劃很重要,這需要大量的練習!

4.學學各種STL容器和庫函數的用法,這可以為你節省大量的編碼時間。

至於選什麼語言,個人推薦C++,其實選什麼語言不重要,重要的是多練,多刷題。刷題的OJ百度一下一堆,都各有各的特點,學校一般也有自己的OJ,就個人喜好刷吧。

學演算法,最重要的是多刷題,多思考,多交流。那個社團既然能組織起來,帶頭的人至少也應該有個藍橋杯國二的水平吧,剛開始不懂的可以多問。

最後說一些關於藍橋杯比賽的事項:

1.填空題求解方式不限。填空題基本上暴力都可以跑出來,有些題目代碼實現複查手算簡單的可以手算,有些與日期有關的題可以查windows自帶的日曆。總之,怎麼方便怎麼來。

2.程序填空題基本上全是遞歸,既然是遞歸,函數往往不會只有一個地方調用自身,找一下其他調用自身的語句,稍微推理一下就能得出正確答案。

3.編程題不要空著!盡量想出最優解,想不出來寫暴力,暴力都寫不出來就直接寫個輸入然後輸出樣例的結果。第一個測試數據一般都是樣例,這樣寫,寫了就有分!


謝邀,好疑惑為什麼好多問題都有邀請到千千,好幸運的說~


雖然藍橋杯的題目大都涉及到少量的暴力以及少量的演算法,但是對於 c/c++ 與 java 來說實現都是沒有難度的,只不過更多的高手集中在 c/c++ ,也就是說,報名 Java 容易拿獎(如果只為獎項的話),如果想與更多的人切磋還是報名 c/c++ 才可以看見差距。

需要掌握基礎的演算法知識。

然後想練習的話推薦 51Nod ,一方面是因為中文題,另一方面因為題目都有很好的分類,所以可以從一級題開始刷起,太難沒思路直接跳過做其他的。


不要為了打藍翔杯而準備藍翔杯

不要為了打藍翔杯而準備藍翔杯

不要為了打藍翔杯而準備藍翔杯

平時訓練,如果覺得自己學校的人太菜,就加別的學校的ACM群,跟他們一起練。

入門書當然推薦劉汝佳的紫薯啦。

最後,一定要報B組,語言當然選c++啊。


本人大一自學過C語言,大二上學期被同學拉去準備ACM開始學習演算法競賽,下學期第一次參加藍橋杯拿了C++B組國二。

當時是看了《啊哈!演算法》和《挑戰程序設計競賽》的部分內容,然後在Virtual Judge上做了kuangbin的簡單搜索與圖論專題。感覺藍橋杯B組演算法上只要掌握搜索和二分就可以進國賽了。


這個比賽… 建議題主把目光放到acm上吧 藍橋杯這種交了錢去參加 然後最低就是省二了吧 就能去北京參加國賽了 我們學校這麼不重視演算法競賽 每年都有一大批學生去參加然後掙創新學分… 但我們學校acm上一屆最好的成績是區域賽銅牌(非常丟人…) … but 在我們學校acm實驗室學習的同學(本科)不論是找工作還是保研複試 都沒有什麼壓力。

而且 我個人認為參加比賽很重要的一個意義就是以賽代練,大家都是雙非學校,以後無論是找工作還是研究生複試都需要比那些雙非的同學展示出更多的同學才會有機會 這不是妄言…

回歸本題 演算法競賽比較重要的就是刷題吧 不知道藍橋杯給不給歷年考題和題庫 不給的話可以刷一些 pat的考題 還是很好的

然後java開發還是c語言程序 這個東西 你沒試過怎麼知道呢? 別著急 兄弟 c語言也好c++也好 java也好 python 等等 都是開發語言 你自己學一下 然後去網上找幾個小項目做一做 感受一下 就好啦 先有廣度再有深度吧《


JAVA組獲獎率比較高,因為參加的基數比較少。

有語言基礎的話剩下就是演算法了。藍橋杯的綜合難度比ACM要低一些,如果你會暴力的話,所有的題目用暴力做進國賽應該沒問題(因為是賽制是和NOIP一樣的騙分制,而不是ACM的AC制)。

怎麼準備?藍橋杯官網上有一堆題目,刷題刷題刷題就OK了。

其實雖然說藍橋杯的難度沒有ACM那麼高,但是隨著發展,難度也是在慢慢提升。主要是題目的難度跨度太大了,簡單的特別簡單,難的特別難。所以需要簡單的題目不粗心,難的題目能過多少數據就過多少數據。


刷題啊!

刷題是硬道理


推薦閱讀:

多線程排序C++怎麼實現才是編寫效率和運行效率都很高的方案?
大學成績的加權平均分的不同演算法間有什麼區別?
Google V8 引擎運用了哪些優秀的演算法?
計步器演算法是如何實現的?
音樂隨機播放的演算法是怎樣的?可能做到產生一個和原來順序完全一樣的歌單嗎?如果有幾率是多少?

TAG:演算法 | Java | C編程語言 | 計算機科學 | 程序設計競賽 |