potter's blog

By potter, history, 2 years ago, In English

Hey everyone, I just wanted to ask any roadmap which I can follow to become great like you guys in cp. I know everything is achieved by practice but I wanna know what to practice and what resources to look up to.

Can anyone suggest some good tips???

  • Vote: I like it
  • -22
  • Vote: I do not like it

| Write comment?
»
2 years ago, # |
  Vote: I like it +1 Vote: I do not like it

I think everyone just practice, practice and then get good, they don't follow any roadmap.

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

Screenshot-2021-10-11-at-6-40-52-PM

»
2 years ago, # |
  Vote: I like it 0 Vote: I do not like it

You can subscribe Cookie197 Official(https://www.youtube.com/channel/UCHxexSPk6tEpZ1MVBq7ZK0Q)

and do more problems while listening music

»
2 years ago, # |
  Vote: I like it +33 Vote: I do not like it

So when I first started Codeforces back in December, I also spent time trying to find some magical list of problems or roadmap, and for some time I was following mostafa.saad.fci's junior training sheet and ahmed_aly's A2OJ ladders. But later around February-March, I switched to just randomly solving problems from Codeforces' problemset that were rated at my rating + 200, which I found worked a lot better for me. I think Errichto's advice of looking at the editorial after 20-30 minutes of being stuck is good. I learned a lot better when I spent some time on the problem so the problem was clear to me, but I just couldn't make the observation or necessary connection to solve it. Also, I always implement the solution to a problem after reading the editorial, since it helps me understand the details and the solution better. Maybe those other links will benefit you more, I don't know, but I think it's good to try different practice methods and see what works best for you.

In terms of learning topics, I look up algorithms and data structures when I come across something in an editorial that I don't know about. I read about the topic and understand it, implement it for that problem, and then just move on. I never practice by topic.

For resources you can probably just Google things when you need them, but I ended up using cp-algorithms and the competitive programmer's handbook the most. I mostly used the competitive programmer's handbook starting out, since I think they have very clear and simple implementations that made it easier to learn. When I started getting to a bit harder topics I switched to using cp-algorithms more. You can also usually find a good Codeforces blog explaining stuff. Personally, I enjoy reading more than watching videos, but sometimes I'll watch Errichto, SecondThread, or galen_colin's lecture videos. I especially enjoyed Errichto's explanation of sparse tables :).

Occasionally I'll watch some high-rated programmer's solution explanation for a problem I found difficult or interesting, since I like seeing how they think and the observations they make. For example, the ones I already mentioned along with Geothermal, neal, and ecnerwala

I will note though, that I spend far more of my time solving problems than reading or watching videos. Watching videos is mostly just for fun.

I think it's also good to keep in mind why you are doing cp. This helped me on the days when I failed at solving a few problems in a row and I felt like beating myself up or wondering whether I could still improve. This way you can stay motivated and keep practicing and getting better.

This was just what I found worked for me. I recommend to take parts of it and adapt it to your strategy. If you have questions, feel free to ask.

Good luck!

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

    Damn that's really helpful. Gracias.

  • »
    »
    2 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    One question. Did you learn major data structures(till trees) first or you learn along the way while solving problems?

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

      Almost everything I learned along the way. Before cp I actually never implemented a graph (and no trees either) before. I did some leetcode about a year ago, so I knew some basic dp and greedy, but that was it. The most advanced data structure I knew before cp was hashmap I think.

      • »
        »
        »
        »
        2 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        what maths have you done before

        • »
          »
          »
          »
          »
          2 years ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          My only math experience is from the standard US math curriculum. I didn't do competition math since I didn't find it interesting at the time.

  • »
    »
    2 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Hey! So i just started my journey and came across your post. I'm really impressed with the progress you made, though I also have some questions.

    What i'm currently doing is searching for the range that I struggle solving problems on. For example, i'm currently searching for 1200-1300 difficulty on codeforces, and will probably do like ~100 problems before moving onto something like 1200-1300. Is this similar to what you did? I think this is probably the best way for me because I personally learn the most when I actually work on problems.

    Also, how long do you take before looking at the solution? Sometimes I outright have no clue what to do so the maximum amount of time i spend working on the problem is ~15 mins. However, if i'm trying multiple approaches to a problem i usually try to exhaust them before, and only after 15 mins of blanking i look at the solution. I was wondering what you do because you've solved almost 2k(!) problems in 10 months. Do you just spend a lot of time/day for cp?

    Thanks! I'm a complete noob who got interested in doing this instead of the boring leetcode problems and i'm trying to set myself up for success.

    • »
      »
      »
      2 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      We practice basically the exact same way. Although now instead of setting some fixed number like "I will do 100 problems before increasing the difficulty" I just solve them until I feel comfortable with that rating range. For example once I can immediately come up with the solution in 15 minutes for the majority of the problems they're probably not challenging enough.

      I follow the same editorial strategy you described, I just spend a good amount of time on this website. I also came here from Leetcode lol.

»
2 years ago, # |
  Vote: I like it +13 Vote: I do not like it

Be fast, because you should make Div2 A-D before the cheaters every contest

»
2 years ago, # |
  Vote: I like it +3 Vote: I do not like it

USACO guide

»
2 years ago, # |
  Vote: I like it +8 Vote: I do not like it

step 1: realize candidate master is not great

step 2: solve problems