abcsumits's blog

By abcsumits, history, 14 months ago, In English

Want to find ways to practice that help in fast improvement, Please suggest me. I can give 10 hours a day, Also if I increase difficulty problems takes a lot of time to solve, so I should practice till I am fast at that rating or waste more time by increasing difficulty.

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

| Write comment?
»
14 months ago, # |
Rev. 3   Vote: I like it +35 Vote: I do not like it

Want to find ways to practice that help in fast improvement

waste more time by increasing difficulty

What?

Anyway, I think it is equally important (for cf contests) to be able to solve easy problems very quickly and also be able to solve harder problems. Solving easy problems faster gives a little bit more score but also it gives you more time to do those harder problems. But it doesn't matter if you have time for harder problems if you can't actually solve them.

You can practice solving easy problems quickly by just doing it. How? Speedsolve div.3/4, maybe AtCoder beginner contests, viruals might help, just try to solve easy problems fast and you'll get better at it.

For practicing harder problems, you'll never guess how to do that efficiently (spoiler alert: it's by solving hard problems). It needs to take a lot of time, otherwise the problems aren't hard enough.

Outside normal contests I'd focus on hard problems since in contests you usually get to practice speedsolving but not much solving hard problems (most often all problems in a contest are either very solvable or too difficult for you).

  • »
    »
    14 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Thanks a lot and up to what difficulty should I upsolve?

    • »
      »
      »
      14 months ago, # ^ |
        Vote: I like it +25 Vote: I do not like it

      I think there are several ways which are working as far as choosing harder problems goes.

      On one hand you can start by upsolving 1-2 tasks you haven't solved from the recent contests/virtual contests you have taken, and this is something that will help you up to some extent.

      In addition you can also try reviewing past problems with a certain rating difference higher than your max rating (many Discord servers with the TLE bot even have a ;gitgud feature).

      Sometimes you might need to also learn new contents but this comes as you encounter various problems too.

      • »
        »
        »
        »
        14 months ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        I like to practice hard problems and I try to upsolve as much as possible ... But during the contests the easier constructive and observation based problems take up so much of my time that I can't really give the harder ones a fair shot ... Can you suggest some remedy ?

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

          There's a simple answer to this, you should try practicing more of these problems and see what patterns emerge from them.

      • »
        »
        »
        »
        14 months ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        Thanks:)

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

      I have been doing quite a lot of problems from 1800-2000, ~200 of them, and it seems to be paying off. You should be able to find a difficulty range in which you can solve about 50% of the time.

»
14 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Solve more problems, by the way you have quite the level by solving so less problems. Just solve more.

»
14 months ago, # |
  Vote: I like it +1 Vote: I do not like it

Off topic: your graph is inspirational!

»
14 months ago, # |
  Vote: I like it 0 Vote: I do not like it

same problem

»
14 months ago, # |
  Vote: I like it +6 Vote: I do not like it

There really are two skills to practice in my opinion.

One is speed solving easy problems, and you can get better at this by just solving hundreds of easy problems. Just learn and practice implementation tricks to make your solutions simpler, shorter and less error prone.

The other is tackling problems at the very edge of your skill level, which is harder to practice, and I think it looks a bit different depending on your problem solving skill level.

For lower level competitive programmers like you and me, it's about building a strong foundation. The main weakness is usually making useful observations. So we need to teach ourselves how to make useful observations.

The way I do this is by upsolving one or two problems on each contest and spending a long time on each problem (several hours, and try again next month if I fail, etc). After solving a problem I try to deeply understand each step of the reasoning that led me to the solution, and really break down each observation. Then I read the editorial, see if the problemsetter had a different/simpler approach, ponder why I didn't notice that way and try to incorporate new ways of thinking.

My reasoning for spending so much time on each problem is that reading the editorial will probably not teach me general lessons that I can apply on many problems, or they might be too subtle to notice without first solving the problem myself.

I started practicing this way in late 2022 and it really helped me.

For higher level competitive programmers (Master and above?), I think it's all about filling gaps in your knowledge. In this sense, it's useful to be exposed to as many ideas as possible. If you don't have any ideas after 30 minutes, you probably have some sort of gap in knowledge, so just read the editorial and implement it.

»
14 months ago, # |
  Vote: I like it +3 Vote: I do not like it

Believe me, if you solve more than three problems a day with a rating of 1700-1900, in less than a month your rating could increase by 200 points.

  • »
    »
    14 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Sure I will do it for 1 month,watch me

  • »
    »
    10 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    what if I can't solve them(they're too hard), will reading the editorial, understanding the solution and implementing it work until I can't actually solve those?