bqi343 / USACO翻译 / 编辑






Comments or suggestions should go to


In competitive programming contests, one must solve well-defined problems by writing computer programs under specified limits or constraints. Typically, the most popular language is C++, followed by Java and Python.

Getting Started

Start learning C++ simply by searching up a tutorial such as this. No prior experience is needed! If you know some other language such as Java or Python, I recommend you switch to C++ ASAP. Codefights is a good way to practice syntax. This link is helpful.

Attempt some USACO Bronze problems. Assuming you know how the input / output works, you should soon be able to advance to silver. After that, you can start doing past USACO silver problems as well as the USACO training pages. Also, start doing contests! AtCoder Beginner Contests are recommended.

Check out the rest of this compilation! If you have done well in math contests, then it shouldn't be too hard to pick up competitive programming as well.

How do you train for USACO Platinum?

  • Do as many contests as possible.
    • Make sure to upsolve after the contest ends!
    • Here is an example of the contests I consider doing.
  • Work through past problems.
    • USACO
      • Old Gold / Platinum
      • Training
        • warning: somewhat outdated!
    • CSES
      • goes along with CPH
      • nice for practicing fundamentals
    • Contest Archives
  • Use the tags to learn new topics as necessary.

Why did I create this?

Obviously, there are many resources which already exist. However, most of them were either too long, or lacking in some aspect. Furthermore, none of them focused specifically on USACO contests. Therefore, I decided to create a personal collection which I could easily refer to during CodeForces contests or ahead of USACO contests.


If you want to add something useful or correct an error, please email me at It would be highly appreciated!