Some faq about usaco, for all your usaco q/a needs

why does everyone ask me for advice aaahhhhh

Posted by jasonzeng124 on August 6, 2024

Since I have gotten an influx of USACO questions lately, here goes (will try to update):

First, your question is probably answered in USACO Guide or the USACO Rules Page. Please read those first, I know you’re lazy.

  1. How does it work?

    First, USACO has the following ranks: Bronze, Silver, Gold, Platinum. After Platinum, you may be invited to the USACO Camp as a USACO Finalist if you performed well in USACO Platinum. (Can’t believe people ask this!)

  2. How good are you?

    USACO Camper/Finalist

  3. What CF rating corresponds to X division?

    Usually Holstein (selection group in camp) = GM+, Guernsey (first time campers) = M+, Plat = CM+, Gold = Expert+, anything below just doesn’t really correspond to anything.

  4. How do you practice?

    Probably better to ask someone else, my practice is highly random and disorganized.

    That said, I like to do live contests, virtual/mirror large contests that I missed, do random problems, etc. What I do: USACO, Codeforces, Atcoder, JOI (problems are on atcoder), sometimes Chinese contests, Universal Cup

  5. Should I do theory or do problems?

    learn theory, only theory, all the useless theory :D DS bash best This is fun, but probably not optimal.

    Generally, the recommend strategy is to practice problems, and learn anything you come across that you don’t know. I roughly follow this strategy, but I also like to learn random cool algorithms for fun.

  6. How to pass X division?

    Get better (see q#7). Alternatively, get luckier.

  7. How to get better?

    Do more problems (see also q#4)

  8. What IDE should you use?

    I use vim/tmux and ide.usaco.guide in school

    For beginners, I recommend vim vscode or ide.usaco.guide.

  9. How long did you take? When did you pass X division?

    I guess I’ll tell my full-ish story here:

    I started programming very early lol.

    Bronze: Around 6th or 7th grade I learned about USACO, but didn’t take any contests or anything :sadge: At some point in 7th grade, I decided to try it. Didn’t really have any background in algorithms, so I just winged contests and my dad taught me some basic stuff. After doing a few contests, I got lucky with the easiest contest and promoted to silver. Did not icp, iirc I solved 1 and partialed 2.

    Silver: Around the summer before 8th grade, I took a single xcamp 300ish course (learned dsu, tree, heap). Around the same time, I started actually practicing (somewhat). That season, I did poorly, with mostly <1 partial, except on the open, where I promoted with 2 solves + 1 partial. That contest was the contest where all of the hardstuck silvers promoted, lol.

    Gold: After passing to gold, I took a break until going to the summer 601 xcamp course (around 2 other people from the same course camped this year, actually). During that time, along with grinding by myself, I went from middle silver skill to middle gold skill. During the fall semester that school year (freshman year of HS), I grinded a lot of CSES and not much else (I mostly grinded in school, where Codeforces was blocked and I thought gold problems were too hard for me). That December, I promoted to Plat with 1 solve + 2 partial (notice a pattern?). It was the easiest contest of the season…

    Plat: After that December, I continued grinding until the summer (my contest results were all bad, <100). Before Plat, I mostly grinded USACO, CSES, and Codeforces, and after Plat I started to diversify into other olympiads too. My strategy for going for camp was to get better at data structures problems, which ETK advised me to do (it worked). There are always a few data structure problems in the Plat contests…

    That summer, I took a break from competitive programming due to travelling. In the fall, I grinded a bit, mostly lightly until December, when I started grinding harder again (until around February). In December, I got one solve (kruskal tree OP) + 2 partials for 517. In Janurary, I got partials for 383 (oops missed 2 DS bash problems). In February, I got 1 solve + 2 partials, 481 + 9th on leaderboard (yay, I can say I wasn’t majorized by Rain in the USACO season :D). In March, I got 3 partials, 400.

    And that’s it for now. Still grinding for camp next year, hopefully.

  10. How to camp?

    At this point, I hope you know that you will need to get better.

    note: none of the following is official, it is just my conjecture / observations… Generally, for first-year camp, you will need around 1000+ net score. Lowest score is given less weight, and the march contest / Open is given more weight. For holstein camp, you will need around 2000+ net score. Oh, and certified contests matter.

  11. Does it help for college apps?

    Not really… Only hardcore schools like MIT actually look at olympiads, and lower divisions don’t really matter that much (especially due to cheating)

  12. Other questions?

    Feel free to ask.