初一學生如何學習資訊學競賽 OI ?

時間 2021-05-31 05:50:56

1樓:Stockholm

個人感受,我不知道你是什麼語言,首先我個人角度來講,選C++比較好,畢竟像資訊工程這樣的專業只學習C++,因為它的優點比較突出(這個問題好像前幾天剛被SDU自招的教授問到了),顯然的一點就是它的STL庫,再乙個它的操作介面至少比Pascal要順眼。

接下來就是學習OI的話,我認為越早越好,初一正是大好年齡,但是一定要上心學習,正常學下來高一能進省隊,考NOI啥的,到了高三自主招生也比較吃香。如果你認真學的話,對數理能力的提公升比較有效果,而且能在比較短的時間拿到省二或省一。

不過個人感受的話,學OI之前做好思想準備,因為這極其枯燥,然後家長也要足夠支援你,同時在OI的同時不要鬆懈文化課學習,不然高考連自招投檔線都達不到就比較慘了。

考慮到我學習OI的時間有限,所以我的水平也比較有限,當然具體的學習技巧可以私聊我。

2樓:

IOI這個東西本來就是看天分,這個年紀有天分就不算晚,沒有天分再早也沒什麼用。

競賽主流是C/C++,說是C++,其實C++真正強大的特性都沒有用到,所以不必太過於糾結語言部分,邊做題邊學語言就可以。主要還是看演算法、看思維。思維很重要,那種背下來就會的東西沒有多少出題人願意考,他們願意考的是看思維能力、有靈活性的東西。

所以注意鍛鍊你的思維,保持頭腦的靈活

書的話……如果你時間足夠(且興趣足夠,或者是有從事這方面專業的想法),就學得全一點比較好,可以多買幾本書,但不要僅僅追求量而忽視質。很多競賽輔導書旨在速成,全面性和深度難以兼顧,所以不是一本書就能學好的。

C++Primer是很經典的講授C++的教材了,貌似已經出到了第6版,然而第五版已經足夠用了(因為第五版講的是C++11,目前NOI系列貌似還是C++98)。你會發現它裡面有一些很難也很有意思的語言特性,你可能會讀不下去,也可能會痴迷於此。精細地學習語言是有益處的(,只要你能耐下心並且時間足夠),否則你可能不知道你的程式會出現奇奇怪怪的行為。

但是不必過於糾結一些C++的高階特性,比如說類的繼承,那些競賽完全用不到。你需要注意的是一些比較基礎的但容易忽略的邊邊角角的東西,比如什麼時候編譯器不會為你合成乙個預設建構函式;傳值和傳引用在效率上有什麼區別;為什麼某個函式的引數不加const就過不去編譯;什麼時候變數會被預設初始化什麼時候不會;位運算和賦值運算子到底誰的優先順序更低;strlen函式的複雜度是O(n)還是O(1)……

演算法導論也是非常經典的教材,裡面有諸多有趣而複雜的資料結構。同樣,你可能讀不下去,也可能痴迷於此。

之所以推薦這兩本嚴重超綱(相對於競賽)的書,是因為我認為你可能不想侷限、止步與競賽,而是想感受蘊含其中的藝術。純粹的競賽黨是不必讀這兩本書的。

還有非常重要的一點就是多查資料多問問題。搜尋是一項非常重要的技能,不論是在競賽還是在學習中。搜尋不僅僅意味著dfs、bfs、IDA*……,還意味著你要學會查閱資料。

實在查不到可以問問身邊的大佬。

庫檔案或許也能幫助你,嘗試著閱讀庫檔案(,雖然大多數時候都讀不懂,但是)也挺有意思的。

對了,還需要經常做題以保持手感。可以去各大OnlineJudge找合適的題目,洛谷是比較人性化的新手OJ,當然它也有很多高水平的題目。除此之外還有很多知名的OJ比如POJ,都可以用於練習。

如何配置出適合 OI(資訊學競賽)使用的 Vim?

Windows 用 Dev C Linux 用 GUIDE 或 gedit。有配一遍 Vim 的時間都夠你寫完 T1 了。 有時間去記這個不如bzoj上再刷幾道題。特別順手的vim配置可不是幾行就搞定的,縮排什麼的簡單配置簡單記記就會。綜上,考試時候就別管這麼多了,智商 手速上去了什麼都解決了。 C...

初一學生如何自學程式設計?

光影之下 那些推薦C 的,確定不是來勸退的?以C 的尿性,大多數人都在稍微深入一點之後會因為各種原因放棄的,除非有很強的毅力才能堅持。但是如果你想入遊戲行業,C 是乙個不能不重視的語言,因為他的作用真的太大了,只是因為深入學習對於初學者太難了,所以實在不適合當第一門語言。所以我推薦C或者C 前者學好...

初一學生如何學好歷史啊?

我女兒也是初一,也問我這個問題,然後我看她的做的練習題很多我小學一年級看完上下五千年就了解了的常識她並不知道需要專門背,真的很痛苦。我初中學歷史100滿分沒下過95分,除了年份需要特別記,其他看幾遍教材捋順就基本記住了。個人覺得學歷史最好的方法就是平時去看乙個個的歷史故事,八卦一下歷史塵埃中乙個個曾...