2023-2024年USACO計算機競賽發(fā)布新規(guī)則!更有新的防作弊措施,有備考打算的同學們一定要提前熟悉。
在MIT本科招生官網(wǎng)中,我們可以看到USACO是被“點名”推薦的課外活動,同時它也承擔著為美國國家隊選拔進入國際信息學奧林匹克(IOI)的重任。
對于申請計算機/編程方向的學生來說,USACO不僅培養(yǎng)學生的算法及應用和編程思維,成績含金量也不言而喻,獲得金級、白金級的參賽者將大大增加被藤校錄取的概率!
那么不同基礎的孩子如何學習呢?感興趣的家長和同學們接著看下去吧。
USACO官方明確,在比賽期間禁止生成人工智能,并且不允許美國學生使用VPN 來隱藏自己的IP地址。
白金級別參賽學生要求同一時間參加競賽,時間為統(tǒng)一周六中午開始,與此同時白金級別的題目開始發(fā)布。周六開始參加比賽的鉑金級別學生,將會更受USACO競賽官方認可,有更大幾率會被邀請至訓練營,參與選拔IOI國家隊選手。
通用賽制
適合學生:任意年級中學生。
編程語言:可使用以下任意一種編程語言C、C++,Java,Python;
活動形式:在活動窗口開放的3天時間內(nèi),選擇任意時間開始做題,每場比賽3-5個小時,在線打開試題后開始計時。
晉級方式:如果獲得滿分會直接晉級,否則將在比賽結(jié)束后根據(jù)分數(shù)線劃分是否晉級。
銅級:熟知基本編程知識,會至少一種編程語言。大多數(shù)銅級問題沒有像高級別那樣有很多效率問題。知道如何正確閱讀理解題意,設計一個算法來解決問題。準確地把算法翻譯成計算機代碼是奧信銅級訓練的中心。
銀級:在銅級中用到的工具之外,數(shù)據(jù)結(jié)構(gòu)包括堆、棧、列表、樹以及相對應的排序、搜索算法將被引入并廣泛應用。一般的簡單方法(比如窮舉法)將不再適用銀級比賽,算法的效率和復雜度將開始成為重心。
金級:基本的數(shù)據(jù)結(jié)構(gòu)諸于列表、堆、棧、集合、關聯(lián)數(shù)組和相關的算法將普遍應用,更復雜的數(shù)據(jù)結(jié)構(gòu)包括樹和圖的算法,以及動態(tài)規(guī)劃、數(shù)論和排列組合也將被廣泛采用。
鉑金級:對算法有深入了解,能解決復雜問題、開放問題。題目復合多種算法,還會涉及高難度輔助算法,不但思維難度大,編碼工作量也在加大。
競賽語言:USACO 接受多種語言的解決方案,包括 C++,C,Java 和 Python。由于Java 和 Python 相比于 C++/C 語言運行的會慢一些,所以這兩種語言所允許的運行時間是 C++ 和 C 的兩倍。
相比于國內(nèi) NOIP 只接受 C++ 作為考試語言,USACO 提供了更加靈活的支持,使得比較喜歡 Java 和 Python 的人也有機會參與到算法競賽中。
(中國的孩子可以參加全部月賽和公開賽)
① USACO前3場晉級賽每場4個小時,US Open 5個小時。可以在比賽規(guī)定時間內(nèi)使用USACO賬號登陸,在線打開賽題后開始計時。選手需要在時間結(jié)束前通過網(wǎng)絡將寫好的程序提交。
② 程序提交后考試系統(tǒng)會給出評測結(jié)果。可以使用C++,Java,Python,Pascal,和C中的任意一種編程語言。對于后續(xù)有志于沖刺Camp的選手來說,建議一開始就選擇C++語言,避免后續(xù)更換編程語言。
③ 每場比賽達到一定分數(shù),一般是滿分,可直接晉級到下個級別繼續(xù)參賽。因此理論上,咱們同學如果實力足夠強,即使到了12 年級開始參賽,在12月賽中也有可能從銅級一直晉升到鉑金級。不過對于有志于沖刺Camp的同學,最晚要 11 年級參賽才有可能。
學習主要內(nèi)容為數(shù)據(jù)結(jié)構(gòu),編程語法,配合一定強度的練習,可以初步通過第一輪銅級的選拔。
比如在讀AP計算機的高一高二同學可以從C++或者C入手。
作為編程語言中強大且基礎的兩門,無論是應付比賽還是在以后讀本科或者工作中使用,提前學習C++和C都是不錯的選擇。
比如參加過國內(nèi)NOI的同學,設定的目標可以直接沖擊至少金級別以上的獎項。
在有數(shù)據(jù)結(jié)構(gòu)和編程語法的前提下,需要系統(tǒng)的學習一些常見算法,比如排序等等。同時大量練習官方的金,白金級別的真題。
總而言之,USACO是不僅僅是一項可以讓申請者提高學術(shù)背景的比賽,編程本身作為一門使用技能也會讓學理工科的學生受益終生!