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