此次小編要繼續帶大家探索另一項計算機專業的知名賽事
賽事介紹
USACO(USA Computing Olympiad)是由美國官方舉辦的中學生計算機編程與算法線上比賽,也是譽滿全美的中學生計算機編程學術活動。初次舉辦于1992年,其官網是美國中學生的官方學術活動網站。是美國著名在線題庫,專門為信息學學術活動選手準備。開設目的是為每年夏季舉辦的國際信息學奧林匹克學術活動(IOI)選拔美國隊隊員。和奧數IMO一樣,成為美國大學申請條件下,含金量相當高的官方學術活動。在2016-2017賽季中,共有2003名參賽選手入圍公開賽。其中中國籍選手共132人(僅次于美國926人),成為參加USACO公開賽的第二大國。從官網的題庫設置來看,做題方式與參與正式比賽時相同,采用了標準測評機、文件輸入輸出、直接提交程序源文件的測評方式。Training題目全面,是學習信息學不可不知的網站,每年NOI都會參考上面的題目。每道題附有詳細題解,可查看測試數據和運行結果,便于調試、發現錯誤并改正。
采用章節遞進的層次結構,由易到難,結合了講授知識與練習編程,且為了避免只挑簡單題做的行為,題目必須依次完成。各章節猶如一本學術活動輔導書,形成了一個鮮明的知識結構,利于初學者和高手逐步提高水平,充分學習信息學各方面知識。
從學生個人成長角度而言,USACO不僅僅是一項可以讓申請者迅速提高學術背景的比賽,編程本身作為一門使用技能也會讓理工科的學生受益終生。即使是商科文科的同學,學習編程時也能從另一角度訓練和提升你的思辨能力。
NOI:由中國教育部和中國科協委托中國計算機學會舉辦的全國青少年信息學奧林匹克學術活動(簡稱NOI)。目的在于促進優秀學生交流和學習,以及選拔和培養計算機人才。
USACO的賽制
USACO的參賽選手共分銅、銀、金、白金四個級別,所有參與者都要經過一輪輪的不同等級賽題慢慢晉級。如果銅級滿分,當場晉級銀級繼續比賽,反之則要等到下個月再接著往下比。每年12月及來年的1、2月共有三次月賽機會。而12月的月賽通常是圣誕前的一個周末,當場出成績,一周內放榜,非常適合在RD的截止前沖擊申請材料的最后一個閃光點。
USACO的學術活動等級
青銅級別參賽資格:一進入USACO注冊賬號即為銅級。難度等級:銅級考試只要基本編程常識,會至少一種編程語言。統計的編程限制時間比較充裕,大部分選手都能在初次參賽中晉級白銀級。白銀級別參賽資格:通過青銅級比賽的選手。難度等級:需要基本的問題解決能力和簡單算法(例如:貪心算法、遞歸搜索等),還需了解基礎數據結構。從白銀級開始,選手需要尋找更好的算法才能使程序在規定時間內跑完。黃金級別
參賽資格:通過白銀級比賽的選手。
難度等級:需要有一定的算法基礎,理解一些抽象的方法(例:最短路徑、動態規劃),并且對數據結構有比較深的了解。
白金級別
參賽資格:通過黃金級比賽的選手。
難度等級:需要有很高的編程基礎,對算法有深入的了解。部分比賽問題最后的優化方案可能不止一個,得出的答案也不止一個。
USACO的比賽規則
報名要求:國內高一高二在讀學生,高三學生最后一次的參賽機會是當季12月的第一場比賽,如果實力突出,可以在12月中,RD常規申請前獲得白金級獎項,把握住申請前最后一波強勢的背景提升機會。比賽規則:比賽用時:每場比賽4-5個小時??梢栽诒荣愐幎〞r間開始后登錄USACO賬號,從在線打開試題后開始計時。比賽形式:選手需要在時間結束前通過網絡將寫好的程序提交。程序提交后官網會給出用test case檢測程序的結果,并根據結果給出這一題的得分??梢允褂肅++,Java,Python,Pascal,和C中的任意一種編程。比賽對于程序的大小,運行需要的內存以及運行的時間都有一些具體規定。
晉級機制:
每次比賽,實力強的選手有機會連續升級。在比賽窗口開放的三天時間內,選手可以選擇任意時間開始比賽。開始比賽4小時內,如果拿到了高分(接近滿分或滿分),系統會提示直接晉級,可以在這三天內繼續挑戰下一級,只要實力夠強,一場考試可以升到滿級白金級。沒能拿到滿分的選手需要等到三天的賽程結束后,等待晉級分數線,才能決定是否晉級,如果成功晉級,可以在一個后的第二場考試繼續參賽晉級。
USACO的含金量
隨著STEM教育的理念,及編程低齡化、普及化的發展,USACO的參賽人數和熱度越來越高。又由于編程的門檻相比數理化學習要高一些,因此USACO的難度和含金量實際會略高于同類型的USAMO(美國數學奧賽),USNCO(美國化學奧賽)等等學科奧賽。此外,USACO目前是老美非常熱衷但在中國高中生中的普及度相對來說并不高的賽事,有大量的學生參與了更熱門的USAMO,USNCO等學術活動。計算機賽事不像數理化那么多,USACO還是少有的還沒有被中國選手刷的太多的國際大賽,換言之,參賽選手少了,獲得榮譽的人少了,并且它本身歷史悠久,題目質量很高,含金量自然更高。對于美本申請工程學科的高中生,USACO能夠獲得黃金或者白金級別的獎項,絕對是提高競爭力的大殺器。
| 姓名 | 獎項 | 錄取學校 |
| L同學 | USACO白金IOI金牌AIME12 | 麻省理工學院 |
| W同學 | USACO白金NOI金獎IMO金牌CTB全國特等獎 | 斯坦福大學 |
| Z同學 | USACO白銀CTB全國一等獎 | 芝加哥大學 |
USACO對申請的幫助
如何備賽?
| 比賽級別 | 考核知識 | 推薦學習時間 |
| 青銅級別 | 基礎數組,多重循環,復合判斷,枚舉算法 | 50小時編程練習 |
| 白銀級別 | 基本數據結構,貪心、遞歸、遞推等基本算法 | 語法熟練+50~100小時算法練習 |
| 黃金級別 | 堆、棧、樹、鏈表等高級數據結構,動態規劃等高級算法,算法時間和空間復雜度 | 200+小時算法練習 |
| 白金級別 | 各類高級的數據結構,尤其需要注意算法的時間和空間復雜度 |
對于沒有編程基礎的選手:
建議從Python或者Java入手,上手會比較快。可以選擇先自學,學習主要內容為數據結構,編程語法,配合一定強度的練習,可以初步通過第一輪銅級的選拔。
對于有部分編程基礎的選手,比如在讀AP計算機的高一高二同學:
可以從C++或者C入手,作為編程語言中最強大最基礎的兩門,無論是應付比賽還是在以后讀本科或者工作中使用,提前學習C++和C都是不錯的選擇。
對于有編程基礎及編程經驗的選手,比如參加過國內NOI的同學:
可以把目標直接定為沖擊至少黃金級別以上的獎項,在有數據結構和編程語法的前提下,需要系統的學習一些常見算法,比如排序等等。同時大量練習官方的黃金、白金級別的真題。

? 2025. All Rights Reserved. 滬ICP備2023009024號-1