qriyadh's blog

By qriyadh, history, 4 months ago, In English

Hello dear Codeforces community. I have a big problem about practicing competitive programming. Can someone advice me an excellent roadmap? Because I often fail doing 1100-1400 skilled problems. Thank you!

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

»
4 months ago, # |
Rev. 2   Vote: I like it +1 Vote: I do not like it

Try: Monday-800 rarings, Tuesday-900 ratings, Wednesday-1000 ratings, ..... Sunday-1400 ratings, Try to solve as much as you can!

Or every day Div3-Div4 virtual participation.

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

    What a good advice! Maybe you should try it too!

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

      :D

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

      Yeah I solved only 800 ratings problem then I understood that it is not correct way.Now I solve every day 1100-1400 rating problems.

      It is because my Contribution rating is -29: You can write no more 1 comments in 10 minuts.

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

    but the problems above 1000 rating are hard for me i can't even solve them. should i solve 800 rated ones first then should i start to new problems such as 1100 rated?

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

      then try: 1 days 800 rating 4 days 900 rating and 2 days 1000 rating if you think that you can solve harder problems add them make timetable.But do not sort by number of solves.Solve from latest contests and try Div 4 virtual participation some days.My opinion it the best way.

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

    You guys have internet in Turkmenistan ?

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

      Yes,but one of the slowest.

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

        Dude How it feels like living in Turkmenistan? Like I've heard you guys have frequent white marble Buildings. And it's strictly not allowed to visit Turkmenistan?

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

Practice practice practice Give 30-40 mins to a problem iff no approach, then see editorial, then try to code , iff not able to code see and understand the code

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

The wording of the post itself reveals something about you. "I often fail doing x problems" — implying there is a way to fail to solve a task while practicing, which I argue is impossible for reasons I'm about to post in this comment. I think what you should do is start treating problems differently -

First of all it's ok to not solve a problem. And by this I mean to "open a task, read it carefully, make sense of the sample inputs, try to come up with a solution, but end up with nothing or maybe you do come up with something but upon sending the code getting WA." At this point you may have spent around half an hour solving this problem and are about to make a huge mistake — think that you "failed" to solve it and just read the solution and then maybe even send the code for that sweet dopamine release of seeing "Accepted". You should never read the solution unless you have spent at least 3 hours solving it (preferably even more) and today is not the first day of you solving it. Why? Because you have to learn the task by heart first. Otherwise you will not remember the solution as well and will not learn which is exactly why you are practicing the task in the first place. My point is that you have to spend a lot of time thinking about the problem before even considering just seeing it's solution and sending the code.

"But then I won't solve so many problems and it won't feel like I'm making much progress." The number of problems you "submit the right code to" (aka just read the solution and wrote the code) means almost nothing. I can "submit the right code" of 1000 "3000" rated problems and I bet that I won't be able to solve a problem G reliably during a contest after that anyways. Don't let this fool you, the number of "solved problems" means very little if you have taken around 20 minutes to solve a task, gave up and just copied the code so that it didn't feel like those 20 minutes were wasted for nothing. Every second you spend solving a task can not be deemed wasted even if you never finished solving it. However it is much more efficient if you end up remembering the task forever and even more importantly remember the principle that helps you solve similar problems. I would rather be a person who has solved 1 problem and spent 10 hours on it but remembered the principle for solving similar tasks forever, rather than someone who has spent same 10 hours and "solved" 20 problems but did not learn anything from them.

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

    thank you very much i appreciate it :)

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

Here is my "roadmap". First step for you is to look at the footer, start working through usaco training gate, read more details in the blog.