Codeforces and Polygon may be unavailable from December 6, 19:00 (UTC) to December 6, 21:00 (UTC) due to technical maintenance. ×

ScotchOnTheRocks's blog

By ScotchOnTheRocks, history, 4 years ago, In English

If you do not like these types of blogs, here's your warning to move on.

Problem:

Firstly I'd like to address all the people who are going to say rating doesn't matter, what matters is just developing problem solving skills, because that's the only thing under your control. To that I say, perfectly agreed, because rating is only an approximation of one's skill, and a large number of variable factors control it. But you cannot deny that there is a postiive correlation between the two in the long run. The idea behind saying "just develop problem solving skills" is to essentially say that over the long run, rating will eventually pick up, don't worry about it.

I honestly feel like I'm a much better solver than two-three months ago. But as you would see on my profile page, I've been largely hovering around 1750, and now I've dropped multiple times continuously in rating, to add fuel to fire. And its not a one or two contest whine. It's been the story over 20+ contests and over 550+ problem solved. (You can have a look at my profile's analysis on cfviz). (I am by no means saying that its boast worthy, but its not negligible is my point)

The stagnantion and even negative correlation are starting to get to me now. Sometimes I feel like all the effort is going to naught.

What I've done so far:

I've been following Masataka Yoneda's tutorial since the beginning. [Essentially use the your rating as an approximation of where you are, and solve problems of rating slightly higher, to about 15-30 problems]

A blind training regimen is what I've been doing amongst problems of a given rating. Its given me the chance to learn new topics along the way, and eventually get decent at them. If I feel like I'm weak on a topic, I've gone and done some more problems on that topic, and got back to the blind regimen.

Additionally, each time I drop in rating I go back and try to solve more problems of the rating that I messed up during the contest. [That is, when I get hacked, sys test fail or solve a harder problem, but don't get an easy one in the same problem set]

I've also identified that when a problem has an underlying logic that uses a standard algo — dp, graph problems, binary search or math, I've more often than not, gotten the hang of it. I'm definitely more uncomfortable with adhoc/greedy problems — one's intuition has to necessarily get, not the usual one or two observations, but all the way to the core of the problem. One wrong direction and a quick solve is out of the window. Many times upon going to the Editorial I would find myself very close to the final answer, but missed an observation.

In the harder 1800-2000 greedy problems, I almost always fail due to this. There are so many observations one has to string together. In fact this problem of mine is quite evident in that lots of contests I've solved a higher problem without getting an easy one.

My question to the community:

Can anyone share their experience of having gone through such a stagnation [Especially in the lower half of Expert] and broken out? Anyone with some tips specific to my case in point? Recommendations so that I can tailor my regimen better using the analysis I have provided above?

I'm interested in pure advice comments, specific to my case. Otherwise please don't bother. And no offence to the others, but I'd like to hear from the guys "who've been there done that".

Thanks for taking the time to read.

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

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

I was stuck for a couple of months at just below 1600 and then for about a month at 1700-1800. Pretty much the only thing i did was to solve harder problems (+100 -> +200 above my rating; the TLE discord bot was handy). I very rarely participated in virtual contests though. This was my strategy for the most part.

Now i am stuck at 1900 :p. Maybe i'll need to start practicing harder.

»
4 years ago, # |
  Vote: I like it +107 Vote: I do not like it

Ok ive seen your plot. And you solved 6 problems upper that 2000 rating. If you want to reach CM you have to be very fast(solving a to d in div2 under 1:30) or be strong (solve a to e in regular time) but you solve so much easy problem. So my advice is this to make a mashup contest and add last 30 1900 rating problem on cf and solve them with timer and without checking editorial(just try it. Ive done it and it works) and try to solve them under the 2 hours (after 2 hour go and look the editorial) and after solving all of the 30 problems do this for 2000 rating problems. This help you to improve your speed and also helps you to solve the hard problems like e/d div2 which makes you improve a lot. And there are some other things that could help like doing vc and upsolve all of your contest up to e problem. I hope this help you

  • »
    »
    4 years ago, # ^ |
    Rev. 2   Vote: I like it +6 Vote: I do not like it

    How do you create mashup contest?

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

      Go to the GYM part and then go to mashup, then create mashup.

»
4 years ago, # |
  Vote: I like it +24 Vote: I do not like it

I've been in your place too, I am one of those person who have a slow progress despite having many problems solved. I think what made me to purple was just really solving problems outside my comfort zone. Ever since I grinded problems rated 1800-2000, I felt a significant change (you can go to problemset in CF and adjust it to 1800-2000 then sort it by most solved, this is what I did). So I think you should try that too, and I think the most important thing is to just keep going on practicing, because you'll always be better eventually.

»
4 years ago, # |
  Vote: I like it +15 Vote: I do not like it

Oh common, you're going well. Learn some patience from ruban and PAG.

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

    Whenever I solve problems from past contests , I always notice ruban in the standings ...

    The guy definitely has a lot of patience and will ...

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

    600 contests, they have BATMAN level will power

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

I am exactly kinda same situation with you. I can't even retrieve my max rating in 2+ months(looks like I am going to do this now). Sometimes, it's bad problem orders, sometimes overcomplicating B/C or sometimes big WA's just screwing me. And it looks like if I am under pressure, I get WAs.

»
4 years ago, # |
  Vote: I like it +10 Vote: I do not like it

Hello,

Firstly, I would advise to make sure that you can solve the first two problems in most of the Div.2 contests, this would make you feel sure that you will be able to solve at least two problems. These problems are usually simple greedy/ad-hoc problems that don't require a lot of observation. And since you mentioned that ad-hoc/greedy problems are your weak spot, this will be opportunity to practice these techniques.

Secondly, when you fail to solve a problem at a contest that requires another technique or trick unknown for you, try studying more different variations of that technique. For example, if you fail to solve DP problems, try to make a list of DP problem variations, something like: coin problem, 0-1 knapsack, digit DP, bitmask DP, DP on graphs, DP with optimizations... Once you have such list, try to honestly mark yourself how much you are comfortable with each of these, and practice each of these to make your marks better. This will give you broad view of problems, and it is very likely that some future contests will have the same idea as the ones you have already studied and solved.

On the end, I wrote a short guide on how to feel more confident and motivated as a competitive programmer, here is a link to it, in case you would like to read more.

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

I am in the exact same situation. Its almost a month with no progress, every time I perform good in a contest, I fuck up in the next one dragging me down to the same place. I am in no position to give you advice, all I can say is just don't give up.

»
4 years ago, # |
Rev. 4   Vote: I like it +19 Vote: I do not like it

When you read the editorial and you realize that you have missed an observation, or when you get an observation after too much time, ask yourself why you've missed that observation. Generally, the greedy observations can be noticed by generating some sample tests (example 2), and there are also some "classical" / recurring ways to let greedy work (example 3). Maybe the examples I'm providing are quite specific, but I think they helped me a lot. Examples (spoiler alert):

Example 1
Example 2
Example 3
Example 4
Example 5
  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Do you have a CP journal that you write in during the contest? Also during practice? If yes, when/how often do you review it?

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

      About once a week I write the key ideas (2/3 lines per problem) of problems that I have solved about 1 month before (sometimes I don't remember parts of the solution and I refresh my memory). During a contest I don't write any journal, I only focus on the contest.

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

You can see my graph i directly descended from expert to pupil in last to last contest but I have solve around 1100 problems on codeforces, but it doesn't mean I should always solve first 3 questions and 1 hard question between 1800-2000, there are lot of factors to consider. I ended up solving zero questions while first question had 13,000 submissions and i could not solve first question even.

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

Me too, I am currently hopelessly stuck beneath the 1600 line.

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

Solve a lot of Div2C.

The biggest bottleneck of increasing rating in this range is Div2D. And a lot of times it is based on some simple trick. Solving D2C will help you recognise these tricks quickly during a contest.

I want to make it clear that most of the problems below D2D rarely require advanced Algo or DS and can be solved easily with just some maths and thinking, which obviously can be improved with experience!

TLDR: Solving a lot of D2C in practice -> Solving D2D in the contest.

»
4 years ago, # |
  Vote: I like it +22 Vote: I do not like it

My impression of this is that the gap between 1500 and 1700 is not necessarily the same as the gap between 1700 and 1900. As your rating goes up, it gets harder for your rating to go up further. I think ``plateauing'' is natural if you think about what the prerequisites are for each color. To be consistently Purple demands mastery of a lot more things than being consistently Cyan.