發(fā)布時(shí)間:2022-12-18 22:59:41
編輯:范范來(lái)源:犀牛國(guó)際教育中心瀏覽:次
前兩天一位家長(zhǎng)找到我,說(shuō)他的孩子之前學(xué)習(xí)過(guò)一點(diǎn)算法,最近通過(guò)USACO Training在刷題,想問(wèn)我通過(guò)這樣的刷題,是否能夠通過(guò)USACO競(jìng)賽?
于是,我給他出了幾道基礎(chǔ)的銅牌組的題目,通過(guò)這些題目測(cè)試下他的水平。誰(shuí)知道不到半個(gè)小時(shí),家長(zhǎng)就把這幾道題目的答案全部發(fā)給我了,檢查下來(lái),竟然全部都正確。我立刻和這位家長(zhǎng)交流,想了解下這位學(xué)生是如何刷題的,為何效果會(huì)這么好?家長(zhǎng)也很熱心的拉了一個(gè)群,學(xué)生在群里介紹了他平時(shí)刷題的方法,這套方法也是他在一位算法專(zhuān)家的博客上看到,并記錄下來(lái)的。
先分析題目,再寫(xiě)代碼,代碼編寫(xiě)的時(shí)間不超過(guò)50%
USACO 的競(jìng)賽題,重點(diǎn)并不是編碼,它主要還是考察學(xué)生應(yīng)用算法思考問(wèn)題的能力,所以在真正編碼以前,需要把問(wèn)題分析清楚,如果把問(wèn)題思考清楚了,編碼的時(shí)間是不會(huì)太長(zhǎng)的,一般把編碼的時(shí)間控制在一道題目總完成時(shí)間的50% 。
冥思苦想很多天,再去查看別人的題解
刷題的過(guò)程中,總會(huì)碰到很多題目是自己暫時(shí)不那么容易做出來(lái)的,這類(lèi)題目恰恰是最適合你的,碰到這種題目,可以認(rèn)真思考一下,當(dāng)你全部吸收和理解了這種題目后,你的能力就提升了。但大部分學(xué)生碰到這種題目,習(xí)慣性的就會(huì)去看一下題解,然后就自以為懂了,但這種“懂”往往是假象。只有真的認(rèn)真思考過(guò),把自己能夠想到的所有路徑都嘗試過(guò),這個(gè)時(shí)候再去看題解,你才更容易收獲一種新思路。
重點(diǎn)學(xué)習(xí)算法原理,嘗試一題多解 和舉一反三
記得之前和國(guó)內(nèi)信息學(xué)名校(南京外國(guó)語(yǔ))的計(jì)算機(jī)老師交流過(guò),我問(wèn)他們學(xué)校為何能夠培養(yǎng)出那么多代表國(guó)家參加世界競(jìng)賽的選手,他總結(jié)說(shuō),也許他們學(xué)校更重視培養(yǎng)學(xué)生的一題多解能力。算法本來(lái)就是在訓(xùn)練思維的,常常從不同角度來(lái)解答一道題目,會(huì)更加拓寬學(xué)生的思維方式,碰到真正的難題時(shí),學(xué)生更有可能從多個(gè)維度進(jìn)行思考解答,從而最終給出答案。
注重刷題的質(zhì)量,數(shù)量不是第一位的
刷題的核心是重質(zhì)不重量,刷題中最適合你的,其實(shí)是那些比你當(dāng)前的水平高一點(diǎn)的題目,這就是所謂的 “i+1” 理論,通過(guò)認(rèn)真做對(duì)這些題目,能力就能穩(wěn)步提升。所以題目的質(zhì)量很重要,題目是否適合你當(dāng)前的水平,這也是一個(gè)很重要的考量因素。
這位學(xué)生當(dāng)時(shí)選擇USACO Training,就是因?yàn)檫@套題目是按照從易到難的順序介紹了USACO 的知識(shí)點(diǎn),并通過(guò)題目的形式,讓學(xué)生在實(shí)際動(dòng)手中掌握這些知識(shí)點(diǎn)。不過(guò),在刷題的過(guò)程中,他也碰到了一些問(wèn)題,所以才希望尋找老師的幫助:
USACO Training中雖然也有知識(shí)點(diǎn)介紹,但介紹的并不詳細(xì)
USACO Training 中每一章的開(kāi)頭都有本章知識(shí)點(diǎn)的文本介紹,但這些介紹并不夠全面,如果想進(jìn)一步深入這些知識(shí)點(diǎn),可以考慮通過(guò)網(wǎng)上資源和書(shū)本資源,搜集更多相關(guān)資料信息進(jìn)行學(xué)習(xí)查看。
Training中的題目沒(méi)有正確提交前,是無(wú)法看到答案的,有些題目實(shí)在不會(huì)做,就會(huì)一直這么卡著無(wú)法過(guò)去,這時(shí)候會(huì)比較郁悶
USACO Training的訓(xùn)練模式,就是希望能夠通過(guò)做題來(lái)達(dá)到知識(shí)點(diǎn)的掌握,所以在題目正式解答出來(lái)以前,是看不到題解信息的,如果經(jīng)過(guò)了幾天的思考,學(xué)生實(shí)在是無(wú)法解答當(dāng)前題目,可以在百度上搜索題目信息,一般都能找到對(duì)應(yīng)的解答方法。
題目并不完全按照USACO等級(jí)設(shè)定,針對(duì)于每一種算法的題目數(shù)量也不夠
USACO Training 中的算法是按照從易到難的順序進(jìn)行排序的,其順序基本上符合各級(jí)別競(jìng)賽對(duì)算法的要求,但也不是完全對(duì)應(yīng)的,對(duì)于直接刷Training 算法的學(xué)生,往往并不了解針對(duì)自己的級(jí)別應(yīng)該刷到哪里合適。另外,針對(duì)每種算法,Training 中的題目數(shù)量也不夠,學(xué)生可能無(wú)法僅僅通過(guò)幾道題目就徹底掌握算法。
所以總的來(lái)說(shuō),對(duì)于自學(xué)能力強(qiáng)的學(xué)生,刷USACO Training 是一個(gè)比較好的學(xué)習(xí)方式,碰到不會(huì)的知識(shí)點(diǎn)的時(shí)候,配合找一些對(duì)應(yīng)的知識(shí)點(diǎn)視頻進(jìn)行學(xué)習(xí),并且輔助以更多的一些練習(xí)題目。如果平時(shí)時(shí)間比較少,希望能夠更高效的進(jìn)行學(xué)習(xí),還是找一位老師輔導(dǎo)會(huì)更好,在老師講解的情況下,再配合刷題練習(xí),進(jìn)步一定是非常可觀的。
最后,給大家介紹一下USACO Training的網(wǎng)址,注冊(cè)后即可開(kāi)始做題:
https://train.usaco.org
微信咨詢(xún)