USACO – What is it and How do I register for this contest?

What is the USACO?

The USA Computing Olympiad is a national programming competition that occurs four times a year, with December, January, February, and US Open (March) contests. The regular contests are 4 hours long, and the US Open is 5 hours long. Each contest contains three problems. Solutions are evaluated and scored against a set of predetermined test cases. Scoring is out of 1000 points, with each problem being weighted equally (~333 points). There are four divisions of contests: Bronze, Silver, Gold, and Platinum. After each contest, students who meet the contest-dependent cutoff for promotion will compete in the next division for future contests.

Why USACO?

Some of the benefits:
  • International recognition for the ability to solve programming problems.
  • Makes entry easier to colleges that specialize in Computer Science.
  • Solve hard problems in Computer Science which helps in creating your own startup company or work for a Big Top Tech company (like MAANG – Meta, Apple, Amazon, Netflix, Google) or other tech companies.
  • Helps build a Network which will always be helpful at every stage of your career. Benefits of a great network cannot be over-emphasized.
  • Travel to different parts of world and participate in other computing contests.

How can BitSpace Education Help You?

Experienced teachers: our teachers have been teaching Data Structures and Algorithms for The Canadian Computing Competition (CCC) and the students have obtained great scores in both the Junior and Senior levels. In comparison, USACO and CCC have very similar requirements in terms of the topics that the contestants need to be aware of.
 
Our Approach: we have a structured approach in helping students understand the topics, solve problems and help them gain experience and expertise.
 

How do students participate in a USACO contest?

Register for a (free) account on usaco.org, then wait until the four-day contest window starts. When the contest window begins, the USACO homepage will update with instructions on how to participate.
 

How are USACO contests scored?

USACO contests are scored out of 1000 points. Each problem is worth 1000/3=333.333… points. When a solution to a problem is submitted, it is run against a number of test cases (see the second link above for details). All test cases for a problem (typically 10-30) are weighted equally, except the sample test case(s), which do not count toward your score. Inputs and outputs for test cases other than the sample test cases are not visible during the contest.
 

How to start and work upwards from Bronze?

All contestants start in the Bronze division. At the end of the contest, a “cutoff score” for each division is determined based on the difficulty of the contest. If your score is at least the cutoff score for your division, then you get permanently promoted to the next division. Historically, the cutoff score has always been a multiple of 50 points in the range 600…850 (typically 750).
If you get a perfect score during the contest (i.e., you fully solve all three problems), then you get an in-contest promotion, where you immediately get promoted to the next division. You can start the next division’s contest whenever you want during the contest window; your four- or five-hour timer resets when you start the contest.
In essence, if you start Bronze on day 1 and get a perfect score, you can progress to Silver immediately and keep going up until Platinum (which is the hardest level because it goes from Bronze ➝ Silver ➝ Gold ➝ Platinum).
 

What are the topics covered in Bronze?

Getting Started
Time Complexity
Introduction to Data Structures
Simulation
Rectangle Geometry
Complete Search
Basics of Complete Search
Complete Search with Recursion
Sorting & Sets
Introduction to Sorting
(Optional) Introduction to Sets & Maps
Additional
Ad Hoc Problems
Introduction to Greedy Algorithms
Introduction to Graphs

What are the topics covered in Silver?

Prefix Sums
Introduction to Prefix Sums
More on Prefix Sums
Sorting & Searching
Custom Comparators and Coordinate Compression
Two Pointers
More Operations on Sorted Sets
(Optional) C++ Sets with Custom Comparators
Greedy Algorithms with Sorting
Binary Search
Graphs
Graph Traversal
Flood Fill
Introduction to Tree Algorithms
Introduction to Functional Graphs (DAGs – Directed Acyclic Graphs with exactly one outgoing edge)
Additional Topics
Introduction to Bitwise Operators

What are the topics covered in Gold?

Math
Divisibility
Modular Arithmetic
Combinatorics
Dynamic Programming (DP)
Introduction to DP
Knapsack DP
Paths on Grids
Longest Increasing Subsequence
Bitmask DP
Range DP
Digit DP
Graphs
Shortest Paths with Unweighted Edges
Disjoint Set Union
Topological Sort
Shortest Paths with Non-Negative Edge Weights
Minimum Spanning Trees
Data Structures
Stacks
Sliding Window
Point Update Range Sum
Trees
Euler Tour Technique
DP on Trees – Introduction
DP on Trees – Solving For All Roots
Additional Topics
String Hashing
Hashmaps
Meet in The Middle

What are the topics covered in Platinum?

Range Queries
Introduction to Segment/Fenwick Tree
More Applications of Segment Tree
Range Queries with Sweep Line
Range Update Range Query
Sparse Segment Trees
2D Range Queries
Divide & Conquer – SRQ
Square Root Decomposition
Trees
Binary Jumping
Small to Large Margin
Heavy-Light Decomposition
Centroid Decomposition
Geometry
Geometry Primitives
Swee Line
Convex Hull
Convex Hull Trick
Miscellaneous
Matrix Exponentiation
Bitsets
Divide & Conquer – DP
Minimum Spanning Trees
Share the Post:

Get a Free Trial Class?

Scan the WeChat Code, and an education consultant will further assist you.