rob00's blog

By rob00, 3 hours ago, In English

I've just hit my goal of reaching yellow on Codeforces. Thus, I'm celebrating by sharing with everyone what I've learned over the years while trying to improve.

I've done a lot of research on my own when I was at a lower rating, constantly googling and looking at blogs to try to come up with the "optimal practice strategy", and failed every time. So, I think my experience in failing is going to be very valuable to a lot of people reading this.

Let's imagine a very simplified case of what happens when we're doing a problem. When solving a practice problem, these combinations of things can happen:

  1. Solve? Yes/No
  2. Tried a lot of ideas? Yes/No
  3. Used the editorial? Yes/No

Now, here are the simplified rules I follow to tell if I'm improving or not.

  • If you did not solve, did not try a lot of ideas, and did not use the editorial: you did not improve.
  • If you did not solve, did not try a lot of ideas, and did use the editorial: you did not improve.
  • If you did not solve, did try a lot of ideas, and did not use the editorial: you did not improve.
  • If you did not solve, did try a lot of ideas, and did use the editorial: you did improve.
  • If you did solve, did not try a lot of ideas, and did not use the editorial: you did not improve.
  • If you did solve, did not try a lot of ideas, and did use the editorial: you did not improve.
  • If you did solve, did try a lot of ideas, and did not use the editorial: you did improve.
  • If you did solve, did try a lot of ideas, and did use the editorial: you did improve.

In other words, you can tell if you improved by: (tried a lot of ideas) && (solved || used editorial)

In my experience, this has been an easy, simple, and accurate test to determine whether a practice strategy works (or not). For example, let's think about some of the common tips for improving and think about why they work: solving problems around your level. When you solve problems around your level, it typically takes 20-30 min+ of trying your own ideas, and you finally either solve it or you fail and read the editorial. According to my rule, you improve in both cases anyways, so this is an effective strategy.

Now, what strategies don't work? Let's think about solving problems that are too easy. You get the right idea in maybe around 5 minutes, maybe implement, and you're done. You didn't try a lot of ideas. You didn't improve. Now, how about problems that are too hard? You try maybe one or two ideas, get stuck, and can't think of anything else. You didn't try a lot of ideas. You didn't improve, regardless if you try to read the editorial or not. What about studying a lot of algorithms in your free time? You're only reading ideas, and not trying a lot of ideas of your own. You didn't improve (however, the rules imply you do improve if you try to come up with the algorithm on your own first, then read about it after).

But, why is trying a lot of ideas on its own not sufficient for improvement? Because if you don't resolve why those ideas do/don't work, they were pointless. That's why reading the solution or actually getting an AC after you've tried ideas is necessary, because you confirm whether you were right or not.

Finally, I know improvement isn't just a simple yes/no, but I think my heuristic (?) is a very solid starting point for many people here struggling to understand why they're not seeing the results they want.

Bonus
  • Vote: I like it
  • +28
  • Vote: I do not like it

»
3 hours ago, # |
Rev. 2   Vote: I like it -17 Vote: I do not like it

If you use editorial then you did not improve, regardless of first two factors.

What about studying a lot of algorithms in your free time? You're only reading ideas, and not trying a lot of ideas of your own. You didn't improve.

lol

  • »
    »
    3 hours ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Interesting. Could you share why? The reason I don't agree is because sometimes your intuition/ideas you believed to be true were actually wrong, and the editorial can be very helpful to realize that.

    • »
      »
      »
      2 hours ago, # ^ |
        Vote: I like it +2 Vote: I do not like it

      because my intuition is always correct

  • »
    »
    98 minutes ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    I disagree, I read editorials for most of problems i solve when practicing and I would say I have improved quite a lot in the last 2-3 months

»
2 hours ago, # |
  Vote: I like it +5 Vote: I do not like it

so basically what you're saying is that $$$3, 6, 7$$$ are good numbers?

»
40 minutes ago, # |
  Vote: I like it 0 Vote: I do not like it

The solutions provided in the editorial are often not obvious. I have often seen grandmasters resort to brute force solutions, even when better approaches exist for problems A, B, and perhaps C, as mentioned in the editorial. Trying to understand the editorial can be time-consuming and "may" not yield any benefit in my case. Often, reviewing a few winners' solutions—especially those who submitted the fastest—can provide insights into whether I am missing important facts or recurring patterns that they already know, which can help avoid wasting too much time if that pattern or idea repeats.

  • »
    »
    32 minutes ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    I agree. Some editorials can be confusing. I used editorials as an example, but the main point of my blog is you should be trying to correct or disprove your own ideas that you come up with, and there are many more ways to do that than just editorials (asking others, getting WA/AC, looking at tests).