今天我們(men) 的文章重點是 USACO Bronze。
Bronze 競賽要求四個(ge) 小時內(nei) 回答三個(ge) 問題,總分 1000 分。一般來說,及格分數線是 700 - 750 左右,偶爾會(hui) 達到 800 分,根據一場比賽的題目難度來定。
作為(wei) USACO 的 entry level,Bronze 競賽並不要求參賽者掌握高級的數據結構或者算法。學生需要掌握一門編程語言,此外通過練習(xi) 掌握 DFS 即 Depth-First Search 和 BFS 即 Breadth-First Search 的經驗。除此之外,同學們(men) 需要積累一定的競賽實踐和策略。
以上五點我們(men) 一個(ge) 一個(ge) 來說。
關(guan) 於(yu) 編程語言,Bronze 考生一般隻需要掌握該語言的基本 grammar 和 syntax。
對於(yu) DFS 和 BFS,這兩(liang) 者源自 reverse engineering。USACO 官方沒有明確提及過,但我們(men) 發現當同學們(men) 掌握了這兩(liang) 者,能比較好地解答 Bronze 高頻出現的 brute force problems。
接著說實踐部分,這裏不是做多少家庭作業(ye) 的意思,而是如何練習(xi) 肌肉記憶和對問題做出快速反應,以及通過開始-探索-解答題目的練習(xi) 獲得競賽經驗和信心的過程。
最後一部分是關(guan) 於(yu) 競賽策略。在四小時的考試過程中,考生可能會(hui) 麵臨(lin) 多種場景。舉(ju) 個(ge) 例子,一位同學在一道題目上已經花了一小時也沒做完,這時候,他應該嚐試下一道題還是堅持繼續做這道題?有時候,這種決(jue) 定會(hui) 產(chan) 生巨大的影響。有經驗和技巧的考生會(hui) 選擇最好的策略和最明智的努力方向,最終的目標是:參賽者應該得到他們(men) 的水平所覆蓋的所有分數。對於(yu) 那些超出他或她水平的分數,得不到也沒關(guan) 係;但如果你達到了某個(ge) 水平,你就必須得到該水平之內(nei) 這些分數。
但很多時候,我們(men) 看到很多同學會(hui) 丟(diu) 掉一部分本應獲得的分數。原因就是學生在策略上犯了錯誤,或者是因為(wei) 他們(men) 沒有遵從(cong) 問題解決(jue) 程序,或者是審題錯誤,或者打錯了某段代碼,或者在 debug 過程化了太多時間,導致餘(yu) 下的問題沒有足夠的時間完成。我們(men) 見過很多這樣的錯誤。
做個(ge) 總結:Bronze 的 simulation 部分,一旦你很好地掌握了編程語言,那就差不多搞定;對於(yu) brute Force,一旦你掌握了 DFS 和 BFS,在知識層麵就準備的差不多了。但是實踐和策略兩(liang) 部分,並不是通過課堂學習(xi) 和課後作業(ye) 就能掌握的。考生需要通過多次模擬考試,才能越過某個(ge) 臨(lin) 界點,達到考過 Bronze 的水平。
以上五點,前三點:編程語言,DFS 和 BFS,都可以歸結為(wei) 一個(ge) 東(dong) 西,叫做知識水平(knowledge level)。知識水平的東(dong) 西,對於(yu) 機構 的同學們(men) ,隻要在常規周末課上認真聽講完成練習(xi) ,就可以比較好地理解。
然而,理解這些知識並不意味著能夠使用它來解決(jue) 一些棘手的問題,尤其是那些變化比較多或者涉及了好幾個(ge) 考點的題目。這樣的問題需要用到多個(ge) 領域的知識,要求你能超越knowledge level,達到更高的競技水平,即 competition level。
機構 的 200 級別課程(包括 201 和 202),上過的同學們(men) 就能掌握編程語言,DFS,BFS,recursion,iteration 所有這些知識點。當然這些東(dong) 西你在其它地方學習(xi) 也都能學到。學會(hui) 這些東(dong) 西,同學們(men) 如果立刻去參加 Bronze 競賽,是未必能過的,因為(wei) 大家的競技水平 competition level 可能還低於(yu) Bronze 的要求。
但是在 機構,我們(men) 在 200 課程後會(hui) 鼓勵我們(men) 的學生不斷增長知識水平,增加知識覆蓋麵;同時會(hui) 有一條係統的上升路徑,讓同學們(men) 提高競技水平。
增長知識水平,那麽(me) 當你的知識水平提高到白銀級別,所有這些青銅級別的問題就會(hui) 容易得多。這就是降維打擊。
增長競技水平該如何做呢?首先我們(men) 說什麽(me) 叫競技水平。舉(ju) 個(ge) 例子:USACO 題目有的時候是很長的,像在講一個(ge) 故事,在這個(ge) 故事講完之後,孩子去做的事情,其實是把這個(ge) 故事抽象成一個(ge) 帶有條件的 problem to solve。這個(ge) 時候需要孩子有比較強的抽取信息能力,然後把這些信息轉化為(wei) 條件;把條件進行分析之後,先在紙麵上完成對問題的一個(ge) 求解,再去寫(xie) 代碼。這些實際考試中需要的能力就屬於(yu) 競技能力。
機構 有一套係統的方法來提高同學們(men) 的競技能力,具體(ti) 來說,就是培養(yang) 他們(men) 在競賽環境中良好的解決(jue) 問題的習(xi) 慣,以及用最高效率的方式解決(jue) 問題。以我們(men) 的 Enhancement Class 為(wei) 例,我們(men) 希望同學們(men) 通過 Mock Tests,practice the workflow。
但是,如何讓良好的競技習(xi) 慣成為(wei) 我們(men) 學生的某種本能和肌肉記憶?僅(jin) 靠每周的課程和作業(ye) 還不夠,多參加 Mock Test 是非常重要的。
在 機構,我們(men) 每周都有一次所有 USACO Levels 的 Mock Test。Bronze,Silver,Gold,Platinum 甚至是 US Camp Level。這得益於(yu) 我們(men) 有非常強大的教研團隊,他們(men) 設計題目,然後布置和真實比賽完全一樣的設置和環境,把所有的學生每周同一時間聚在一起,用整個(ge) 上午的時間完成 mock test。我們(men) 會(hui) 強調以上列出的競技步驟。之後我們(men) 會(hui) 對這些題目進行講解,同學們(men) 必須在比賽結束後糾正代碼,以便通過該次的測試。
如果沒有糾正,那麽(me) 學生們(men) 看到類似問題,仍然不能解決(jue) 它。但如果他們(men) 每一次都能解決(jue) 一個(ge) 正確的問題,那麽(me) 他們(men) 每一次都在成長。
這就是為(wei) 什麽(me) 模擬考試如此重要,以及為(wei) 什麽(me) 我們(men) 從(cong) 今年9月開始推出 Enhancement Class。
評論已經被關(guan) 閉。