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