USACO (USA Computing Olympiad) 2021 season starts in the 3rd weekend of December. Only 4 contests available: December, January, February and March (US Open). Applicants can register USACO account at www.USACO.org website before contest date. USACO contest ladder starts at Bronze level and up to Silver, Gold, Platinum, Training Camp and IOI team.
USACO Contest starts on Friday morning and ends on Monday night. Applicants can choose any 4 hours (5 hours in March contest) to complete the competition. Once contest starts, timer starts ticking, applicants cannot stop or pause until the end of the contest. Each contest have three problems. Applicant can start from any problem, submit solutions multiple times, only the last submission count.
USACO grading is based on how many solved test cases in the contest. Each USACO problem have at least 10 test cases. Total score is 1000 points, divided by problems, then by test cases. For instance, if 3 problems each have 10 test cases, each test case worth 33.3 point. (33.3*10*3=1000). If applicants solve all test cases, they will get full score of 1000 points and get promoted onsite, and are able to compete in the next level right away. Applicants get 750 points or above will get chance to get promoted, but need to wait for a week for official confirmation when the final promotion cutoff is announced.
Here are some good USACO preparation strategies:
- Practice in test environment.
Do USACO problem as if sitting in the real USACO contest. Give 60 minutes for each problem. Try to solve it independently, get as much as test cases as possible. Share your ideas in USACO lesson, compare with optimal solutions and discuss. Redo the problem independently with the improved understanding.
- Organize test points.
Keep USACO learning materials organized in folder and notes, make it easy to find problem patterns which had been practiced before. Old solutions, code snippets and best practices can be used directly, saving precious time in stressful contest environment.
- Study together.
USACO contest has to be done individually by contest rule. But training with classmates and friends are very good approach. Discussion, collaboration, work on homework together, challenge each other by test cases are more fun and shortcut to perform well.
- Fight in December.
December USACO contest is usually the easiest contest of all. More applicants get promoted to the higher level in December, especially at Gold and Platinum level. Find the best time to take the test, usaually do the contest in late Sunday or Monday.
- Bronze-Silver Approach.
Many applicants have solid training during the summer and wish to pass both bronze and silver in December contest. Do the bronze test in early Friday, and silver test in late Sunday or Monday if applicant can get full score.
- Big-O Cheat Sheet
USACO test case given 1 second for C++ and 2 seconds for Java and Python. Bronze level usually can pass using brute force approach. Silver need some data structure such as binary search, BFS, DFS. Gold level need algorithm running at Log(n) time. USACO grading server usually do approximately 10 power of 8 operations per second. Based on the input size bounds given, here are around the complexities your programs should be:
- N ≤ 10 : O(N!)
- N ≤ 25 : O(2 power of N )
- N ≤ 50 : O(N power of 4 )
- N ≤ 500 : O(N power of 3, or cube )
- N ≤ 5000 : O(N power of 2, or square )
- N ≤ 100000 : O(N log N)
- N ≤ 1000000 : O(N)
- Find a good resource.
Applicants can train to do USACO by themselves, by using USACO.org website and free training materials. To save time and energies and get best performance and results, it is better to enroll USACO training courses at www.usacocoach.com or www.stemIvy.com
Check out the free videos on bronze, silver and gold courses.
Here are some good videos for Bronze, Silver and Gold problems at www.stemivy.com or www.usacocach.com, solved in Python, Java and C++.
It is better start preparing USACO and do contest in December, with more and more students take contest,
USACO contests do get more and more difficult over time, and a lot harder to get promoted.