tdpencil's blog

By tdpencil, history, 3 years ago, In English

Hey orzosities. Sorry to create another blog which will most likely be catered to me and a select group of people.

I need help. I've been struggling for a while on practicing. In addition to the enormous demotivation I've been feeling recently due to a mix of covid, isolation, and the lack of improvement, I feel that I've hit a huge roadblock in problem solving. I'm in a crossroads in terms of what or how I should practice.

Towards the beginning of my competitive programming career, I spammed 800s. I feel like this is a common theme with beginners. This worked until I reached around 700 rating (I started hovering there). After, I felt like I was going nowhere and started to look for advice. I found a discord which helped me and met some really cool people there. I also found new youtubers and started to learn Data Structures and Algorithms. I started practicing harder problems (1100s and 1200s) and eventually they became trivial to me. My rating at that point started to improve as well. However, as I tried harder problems, they seemed at a completely different level of thinking and I started to become interested in Data Structures. Long story short, I learned and gained knowledge of various data structures over a couple of months. I also started to do USACO and started to practice silver problems. I have also learned many useful algorithms (I'm not going to list them here). So here I am. To conclude, although I am able to solve 1500 rated problems semi-consistently (and 1200s / 1300s consistently), I feel like I am not making any progress in terms of contests.

So to make a long, useless blog short, what are my next steps? Practice implementation, math, or what? 1200s and 1300s seem trivial to solve, and many data structure problems (within reasonable range — under 1800?) are also trivial. Yet, I am hardly making progress in contests. Any (and I mean literally any) advice would be helpful.

TL;DR (problems above my rating level seem trivial, yet I can't solve them consistently in contest. (Should be plural? Idk) Any advice?)

PostScript: Sorry for my terrible grammar.

  • Vote: I like it
  • +8
  • Vote: I do not like it

| Write comment?
»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it

I noticed that you have solved more than 800 problems, so my adivce is that when you are tring to solve a problem, make sure the problem is hard enough for you. If you just think for a few minutes, these problems are definitely useless for you and can't help you to improve your programming skills.

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

An interesting thing that i ended up discovering after a lot of practice is that for you to actually solve problems in contest time you need to be very confortable with them, since you can run into problems while coding and if on IOI or programming competitions in general 5 hours for 3 problems can be hard, 2 hours for 6 problems is brutal.

Doing well in contests is a lot more about "oh, i saw this idea before" and less about "maybe if im given 2 hours i can solve this problem", and there are even more things getting in the way of reflecting your true skill like contest strategy (for example on the last round problem A was actually harder than B and by me skipping it i was able to gain rating points even though i choked pretty hard that day).

I'd say for you to focus on tackling harder and harder problems and upsolving the ones you couldn't handle before and results will come naturally over time

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

    Ah ok, so the idea is more about seeing a problem before rather than gaining intuition on how to solve it.

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

      No, it is about gaining intuition on how to solve the problems. The thing is that to actually be able to solve something in contest time it helps a lot to at least have some experience dealing with that kind of problem so you can quickly understand how to solve or at least get a huge part off of it to focus on the different aspects the problem brings

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

        How to get intuition during a contest? Out of contest I have a pretty solid intuition on even >=blue region which gets AC in few attempts but during contest I'm totally blank and solve B only after an hour. I want to improve upon this. Is there anything apart from practicing which I can do?

        Currently I'm doing these stuff : - Solve harder problems (1500-1700) - Trying faster thinking and typing on easy problems in contests. - Regular in giving contests. - Upsolve(Skipping problems for few days if unable to get intuition and getting back on it after a week or so)

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

          I think at this point it's just practicing and trying to learn with the problems you couldn't solve.

          One thing i should mention is that i don't think it's worth it to skip a problem for too much time if you can't get the intuition. If you feel like you can make progress then it's very good to keep thinking, but a lot of times it's more worth it to understand the idea you couldn't get and move on than banging your head against a wall.

          Virtual contests also help a lot since you aren't exactly on the pressure of a real contest but you're able to also practice time management.

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

Give more virtual contests and analyze where you are doing wrong.

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

If you're able to solve 1500s semi-consistently, try 1600s and 1700s. Basically, try and be just outside your comfort zone.

As someone has already pointed out, for rating, try doing lots of virtual contests. Getting a good rating till even about 1900 just requires you to solve easy problems fast (which is correlated with your problem-solving skills btw).

Here's a pretty good resource which can help in terms of contest rating for most rating ranges.

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

    Wanted to ask how to build more speed? I have practiced a lot of easy problems to build up speed and also did difficult problems to solve beyond B during contests and I'm consistent with giving contests too. I think I'm pretty consistent with As and Bs and I'm also trying harder problems(usually 1500-1700 and few times even higher). I'm able to solve the problems rated way higher than me(in blue zone or above) after the contest but during contest I overestimate/overthink on problems and mentality during the contest is pretty weird for me. I keep thinking random stuff instead of thinking about the problem but after the contest I'm quite focused. I tried many things but it doesn't seem to help. I think I should give more virtual contests right? Because I'm bad at giving contest so I should practice more on giving contest right?

    Apologies for asking this in a comment section but I didn't want to make another newbie how to practice blog.

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

      If your issue is more about your mentality in contest, then you should do virtuals, sure.

      One more thing that helps some people I know is to think of the problems as one division below what you're participating in. If you're participating in Div 1, try to think of it as a Div 2 round, and if you're participating in Div 2, try to think of it as a Div 3 round. Essentially, this is something like a blindfolded strategy, where you don't know a problem source.

      This helps especially if you're consistent out of contest, but have some issues in contest. Why this works is that usually problems below 1800 don't need anything too complicated and are usually solvable using one single insight, so if you're solving problems at that level, you should try to underestimate their difficulty in contest, and try to not get stuck on the same ideas.

      And one more thing, if you feel like you're falling behind in the contest, avoid looking at standings. It tends to demotivate a lot of people and leads to bad performance. And if you fall behind in the contest, then remember that solving another problem usually leads to a huge jump in your rank, so you can still salvage the whole situation.

      And as far as speed is concerned, try to solve ABCs, the problems in them range from easier than Div 3 to harder than Div 3, which is a good range to test yourself on. If you want, you can also keep track of your solved problems in a notebook, with the main insight in them (sort of like a hash table from keywords/"structure" of the problem to ideas), so that you can memoize your ideas for later on (I guess that's where the word memoization comes from — creating "memos").

»
3 years ago, # |
Rev. 9   Vote: I like it +1 Vote: I do not like it

You don't lack anything in practice.In fact, you have solved much more problems than me of every difficulty and every type.I also don't have any IOI or Math Olympiad Background.I also know many people like you whose ratings are lower than me but they have been trying way too harder than me for years.So what's the difference?The difference is inside the mind.What you think, how you think and what you believe.

  • First: You have to keep things simple.Don't try too hard.Just wake up everyday, try to solve 2-3 problems out of your comfort zone and try to enjoy them, try to read the statements with fun and passion.Even if you solve only one problem in a day with full passion and focus it will help a lot.
  • Second: Don't worry about ratings.If you keep enjoying the process(You have to enjoy the contests, even contest Announcements), the results will take care of itself.Then your desired ranks (Pupil,Specialist,Expert,CM or GM) will seem to you just a matter of few months or years.
  • Third(Most Important): Someone told: Yes you have to be good.But you have to believe inside your head that you are already good enough.If you work too much harder, your creativity will get damaged.There is a very fine point between ingenuity and work which balances everything.If you catch that, then you will be unstoppable.
»
3 years ago, # |
  Vote: I like it +17 Vote: I do not like it

Quoted from Errichto: If you can constantly solve problems at a certain level, you should reach that rating.