rob00's blog

By rob00, 37 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
  • +243
  • Vote: I do not like it

»
37 hours ago, # |
Rev. 2   Vote: I like it -161 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

  • »
    »
    36 hours ago, # ^ |
      Vote: I like it +6 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.

    • »
      »
      »
      36 hours ago, # ^ |
        Vote: I like it -110 Vote: I do not like it

      because my intuition is always correct

  • »
    »
    35 hours ago, # ^ |
      Vote: I like it +4 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

  • »
    »
    21 hour(s) ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Lol, this guy got downvoted hard

»
36 hours ago, # |
  Vote: I like it +24 Vote: I do not like it

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

»
34 hours 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.

  • »
    »
    34 hours 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).

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

      As a newbie, even reading B takes me complete day sometimes and yet I do not get it or do not get it in a way that I can do it in future if I face a similar thing. It's pretty random for me. Once or twice I have solved till C too by my self in actual contests. Like you can take today's contest only, Global round 27, solved the first fast(according to my speed) but wrong answer twice on 2nd question. Reading the editorial, I really don't know will help me optimize the skill in future. These are the types of optimal strategy questions and the optimal strategy cracking requires something that I haven't figured out yet.

»
33 hours ago, # |
  Vote: I like it 0 Vote: I do not like it

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

why

»
30 hours ago, # |
  Vote: I like it 0 Vote: I do not like it

Thanks, will implement this into my practice route.

»
28 hours ago, # |
  Vote: I like it 0 Vote: I do not like it

Good way to get it across!

»
23 hours ago, # |
  Vote: I like it +7 Vote: I do not like it

A note : All the you did improve. are not same. Lets keep aside the problems that you solved, without trying much (If you did solve, did not try a lot of idea)

Solving all by yourself > Solving with minor hints from editorial or other sources > Solved after seeing major part of editorial, or the whole editorial.

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

    My point is your goal should be to get the problem solved by yourself. Not to keep trying till you "satisfy" yourself that you have tried enough, and Its okay to see the editorial now.

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

    Dude why are you trying to give tips. You are specialist ... Didn't even bother to explain why x>y>z.

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

      Why should that matter? If the advice is good it doesn't matter who is giving it. It is true that people with higher ratings have more experience and can therefore give better advice, but that doesn't mean that just because someone had xy rating or xy rank, their opinion is automatically invalid.