怎樣刷題才能事半功倍?這份技巧指南快收好!
刷題是信息學(xué)奧賽提升實力的一個不可或缺的環(huán)節(jié)。
許多家長和學(xué)生認(rèn)為刷題就是讀題想題解題,想不出來就看題解再解的一個過程。
誠然,這樣確實可以提高實力,但很可能就會錯過快速提升的機會。
以下是為大家梳理的刷題流程:
初學(xué)者
對于初學(xué)者,總結(jié)就是不愛動筆,喜歡全靠大腦思考。
有以下幾個問題:
01
首先是讀題。
對于描述簡潔的題目還好,但是如果遇上好幾百字的閱讀題,或者是題意信息復(fù)雜的題,可能有的孩子就直接倒在讀題部分了。
*建議:
讀題的時候可以用筆記錄關(guān)鍵的部分。
例如排序題,可以在紙上寫好排序的方法等。
02
其次是不看樣例,或者看了樣例也不自己模擬樣例。
這就導(dǎo)致了很多初學(xué)者讀完題之后直接寫代碼,然后測試,發(fā)現(xiàn)樣例不對。
這時候才手動模擬樣例發(fā)現(xiàn)題目和自己寫的完全不是一回事(甚至有孩子不會模擬樣例根本發(fā)現(xiàn)不了代碼的問題,陷入懷疑之中大腦就直接宕機了)。
只好把寫好的代碼刪除重寫,或者是在原來的基礎(chǔ)上打補丁。
這樣寫出的代碼只能叫做無效代碼,難以達到提升的目的。
03
再次是想題。
*推薦做法:
初學(xué)者將自己的思路寫在紙上,然后想好大概的實現(xiàn)步驟(寫一個簡單的代碼流程圖,并記錄關(guān)鍵變量的含義),最后再翻譯成代碼。
初學(xué)者的代碼容易出現(xiàn)前后不一致的現(xiàn)象。
很大的原因都是因為想題以及改bug的時候思維混亂,忘記了變量的原有含義,賦予了新的含義而導(dǎo)致矛盾。
04
最后是調(diào)試。
經(jīng)??梢钥吹接谐鯇W(xué)者寫的代碼出現(xiàn)了bug,然后就是無止境地盯著代碼,希望能在其中找出破綻。
如果是大數(shù)據(jù)出了問題還可以理解,畢竟這個時候經(jīng)驗不夠豐富,面對大數(shù)據(jù)不會調(diào)試技巧,只能希望盯著代碼能找出bug。
不過我看到的更多的是代碼連樣例都通過不了,然后孩子就盯著代碼找bug了。
這個是錯誤的,浪費時間而且這一次找出bug的經(jīng)驗很難應(yīng)用于下一次。
*正確做法:
1、分析代碼的流程。
2、找出其中的關(guān)鍵量(還記得在想題部分的將簡單的流程寫在紙上了嗎)。
3、利用手算得到一個值,再在代碼中利用輸出語句將其值輸出來。
4、比較兩個值是否相同,如果不相同則可以確定這個部分有bug;相同的話則說明沒有問題,可以去找下一個點。
經(jīng)過這樣的方法,最終可以定位到bug,很明顯這個方法比盯代碼有效。
同時孩子還可以在這個過程中進一步理解代碼運行的邏輯,可謂一石二鳥。
進階者
對于進階者,良好的做題習(xí)慣已經(jīng)在大腦中形成,同時經(jīng)過長時間的代碼訓(xùn)練,也已經(jīng)具備調(diào)試復(fù)雜程序的能力。
此時則是要充分利用題解。各大評測網(wǎng)站,包括比賽平臺,都會提供題解區(qū)。
有很多同學(xué)認(rèn)為自己想出了題的話就不需要看題解了,其實這是一個很大的誤區(qū)。
因為很有可能其他人會在題解區(qū)給出不同的見解,而這種多元化的視角可以帶來全新的思考方式。
這樣的效果相當(dāng)于用做一個題的時間鍛煉了兩個題甚至更多題的思維量,實現(xiàn)事半功倍的效果。
刷題網(wǎng)站推薦
對于洛谷,無需多說,中文OJ,對于同學(xué)來說應(yīng)該是使用得最多最順手最熟悉的OJ。
對于Codeforces,題目左邊的Tutorial是題解區(qū)。部分場次的比賽出題人甚至回味選手提供Hint(提示)來幫助解題。
在Tutorial區(qū)下方有評論,英語好的同學(xué)可以看看其他人的討論,可能會有驚喜,畢竟Slope Trick最早也是出現(xiàn)比賽的評論區(qū)。
對于Atcoder,要想看懂user解說需要有日文基礎(chǔ),所以不做推薦。
沒有找到相關(guān)結(jié)果
0 個回復(fù)