This repository has been archived on 2022-06-22. You can view files and clone it, but cannot push or open issues or pull requests.
usaco-guide/content/2_General/4_Practicing.md
Benjamin Qi 01cbbfe55b + Debug
2020-06-08 21:10:26 -04:00

3.6 KiB

slug title author order
/general/practicing How to Practice Benjamin Qi, William Lin, Eric Wei, Nathan Wang, Nathan Chen 4

How to practice, when to read editorials (analyses), etc.

Practicing

Reading Editorials

Knowing when to "give up" on a problem and start reading the problem's editorial is challenging. Below are the opinions of various individuals.

Note that "give up" is in quotes, because one still learns when they "give up" and read an editorial!

Benjamin Qi

If you're still coming up with new ideas, keep thinking. Otherwise, you have several options:

  • Look at [part of] the solution. (If CodeForces, look at the tags.)
  • Leave it for a while and do something else if you actually want to solve it on your own.
  • Get a hint from someone else.

I'm impatient, so usually I go with the first option. Sometimes I end up reading an editorial before reading the statement, but idk if this is a good strategy. :/

In any case, if you thought about a problem a lot during a contest but didn't end up solving it, then I don't see any reason not to read the editorial when it comes out (vs. continuing to think about it on your own). Also, you should always implement the solution afterwards!

William Lin

I follow three guidelines (from most important to least important)

  1. Having fun, just doing whatever you feel like doing
  2. Spend about the same amount of time that you would be able to during a real contest
  3. Whether you are making progress or not

Feel free to not listen to William Lin's suggestions as he is not very good himself.

Eric Wei

read problem editorials some time after thinking "i have no clue what i'm doing please send help" and before "if i stare at this problem for one minute longer i'm going to punch a hole in my computer", figure out the exact time yourself

Nathan Wang

My personal opinion is that it is okay to give up early when solving CP problems. Sometimes I spend as little as 15-20 minutes on a problem before reading the editorial or at least glancing at solution code. Other times I may spend significantly longer.

CP editorials generally aren't the best (with the exception of USACO editorials, which are pretty good) so I often spend a lot of time trying to understand the solution even after "giving up" and reading the editorial. I think it's good enough to implement the code without having the editorial open.

My justification for why I think it's okay to give up so early is as follows:

  • Getting frustrated and quitting CP for a week is worse than giving up
    • Whenever I feel like I'm really frustrated with a problem, I read the editorial
  • CP editorials are usually difficult to understand, so you will still have to spend a lot of time reading and understanding them
  • You learn a lot by reading editorials
  • If you can solve a problem without reading the editorial, that means you probably could have solved the problem in-contest too, so you didn't actually learn that much. However, if you didn't know how to solve a problem and you read the editorial so now you do, then you've learned a lot more.
    • In other words, reading editorials is a good thing, not a bad thing!

Overall, I would just say to "give up" when you feel like giving up, whether that's in five hours or in 15 minutes :)

Nathan Chen

Read the editorial when you feel like you've stopped making progress; that could be from 1 to 5 hours. However, the most important part about reading the editorial is that you understand the topic and try to think about what similar problems look like. Being generally curious is a good way to practice algorithmic thinking.