Блог пользователя hxu10

Автор hxu10, история, 3 года назад, По-английски

I have participated over 60 contests. I became expert in my 12th contest and reach the rating 1800 at 17th. I feel very confident and my goal then is master and grandmaster.

However, I find it extremely difficult to move further. I have stayed between 1747 and 1965 in the nearly 30 contests, every time I reach 1900, my next contest will more likely to have negative rating and make me drop into expert again. My title keeps expert -> candidate master -> expert -> candidate master -> expert ....

I would like to know if any people have the same feeling as me, like very hard to reach purple or very hard to stay purple. I heard from another saying: "hard work makes you expert, but if you want master, you need talent. " I don't know if the saying is true.

----- UPD: Sorry for the title change. The gap between expert and candidate master is actually only 1. I previously want to ask if a stable expert is very hard to become a stable candidate master. Reaching candidate master by chance and drop to expert next time does not count for stable candidate master.

  • Проголосовать: нравится
  • +80
  • Проголосовать: не нравится

»
3 года назад, # |
  Проголосовать: нравится +23 Проголосовать: не нравится

You could study some success story and try to do the same.

On the other hand, I believe that there exist colors I will never reach. It is actually a matter of fact the most people doing CP never reach purple. And this fact becomes even more true is you substitute "purple" by arbitrary more nice color.

  • »
    »
    3 года назад, # ^ |
      Проголосовать: нравится +7 Проголосовать: не нравится

    It is actually a matter of fact the most people doing CP never reach purple.

    I think the true color is much lower.

    Among active people top 50% of people have rating at least 957.

    If we take latest 5 contests and estimate the perfomance of people falling into closest to top 50%, the results will be 1142, 1100, 1150, 795, 1205, give or take 10-20.

    So, it's kinda a safe bet that most of people in CP are low green — high gray or worse.

»
3 года назад, # |
Rev. 2   Проголосовать: нравится +16 Проголосовать: не нравится

I think it has something to do with whether you really want to do CP or you are doing it for the sake of it! for example, I don't think there can be a better use of my time than doing CP given the people around me and my surroundings that doesn't mean that I always dreamt of being a good CPer . And reaching 1800 or expert is more dependent on have you practiced enough?. This is solely based on my limited experience with CP

»
3 года назад, # |
  Проголосовать: нравится +27 Проголосовать: не нравится

I think that, to a certain extent, one's progress depends on talent, but hard work is ultimately what gets you to progress. From my own experience, you need to be patient when it comes to rating (or growth metrics, in general) and the key to reaching (and staying on) a new rank is consistency: if you look at my graph, I reached 1800 rating in May 2020 and almost one year later I was still in the 1800s. However, I became much better at solving div2D problems consistently and it was only a matter of time until I'd reach CM, which finally happened in September 2021.

So what you can do is just enjoy CP because of CP's beauty and wait patiently for your rating to grow :)

»
3 года назад, # |
Rev. 5   Проголосовать: нравится +19 Проголосовать: не нравится

Most people for some unknown reason believe that just solving a lot of contests should make the difference and that competetive programming is isolated from the other education. I don't think that's the case

When we just start doing cp, the rating grows just because we're getting used to the rules of cp (and because of stupid fake rating feature), not because we somehow actually improve. And then it stagnates, again not because there is an enormous difference between blue and violet, but just because your rating on codeforces actually reaches your overall skill you acquired before starting doing cp

We hit the glass ceiling defined by our background and genetics. I believe it is possible to improve further but it requires tremendous amount of efforts and frankly I'm not sure that I want it that much.

»
3 года назад, # |
Rev. 2   Проголосовать: нравится +4 Проголосовать: не нравится

This shows that your ability is probably between expert and candidate master, so think about how to improve your ability. And also, maybe you need to play more stably?

»
3 года назад, # |
  Проголосовать: нравится +76 Проголосовать: не нравится

"hard work makes you expert, but if you want master, you need talent."

--- to me it should be "hard work makes you master, but if you want GM, you need talent."

So we are just not hard working enough.

»
3 года назад, # |
  Проголосовать: нравится +106 Проголосовать: не нравится

Personally, I believe that the rating which you'll need talent to reach is much higher than CM, M, GM, and even IGM.

What you may actually need is so-called "systematic training", or a systematic knowledge of the whole Competitive Programming system. You need to build up your "talent tree", or "knowledge map".

To be more specific, don't aim yourself to some particular rating, like 1900 or 2100. That's limiting your potential on purpose. Learn new stuff. Learn DP, learn skills to optimize DP, learn common models of DP, such as common models of backpack DP, range DP, counting DP, and monotone queue, and the slope trick. Learn state compression. Learn the Quadrilateral inequality. Do some exercises on them, make sure you get very familiar with their concept and ideas. Just don't get driven too far and learn things that you can't understand at all.

Learn maths, learn combinatorics. Learn basics data structures as well. Segment trees are the most basic thing, and I believe that they have a variety of applications that's not at all obvious. Learn Sparse Table, BIT, HLD, balanced trees, disjoint sets and their revoke operation.

It's enough of a list when you get what I'm saying. What you really need is not stability at solving Div.1 ABs at the moment. It is, however, a general knowledge of algorithms and more importantly, their common applications and the ideas behind it. Try to understand every technique that you learn. Sync with them.

Most CodeForces problems below 2400 I guess do not involve complicated algorithms. Some of them hardly involve any algorithm at all. But this doesn't mean that you shouldn't learn them, for two reasons:

  • The ideas behind the algorithm is really helpful for improving your problem-solving skills.
  • Simple problems can't stimulate your skills, and therefore has little help on your ability.

With a little practice, you can totally reach CM and even much higher. But advancing does require a firm understanding of the fundamental algorithms. Only practising 1900~2100 problems simply aren't enough.

  • »
    »
    3 года назад, # ^ |
      Проголосовать: нравится +34 Проголосовать: не нравится

    Additionally, this doesn't mean that you should learn LCT or suffix data structures. Because you can hardly really understand these and use them correctly. Understanding is more important than knowing.

  • »
    »
    3 года назад, # ^ |
      Проголосовать: нравится +18 Проголосовать: не нравится

    "With a little practice, you can totally reach CM and even much higher."

    I think that assumtions does not reflect reality. Given some people trying DP for some years, at least the half of them have still difficulties to understand a 1600 editorial.

    The idea of "simply do better training" to be able to solve 2000+ problems is a myth. You are arguing from the perspective of a talented person. It is a bit like those rich kids, unable to see why the poor ones suffer to create better income.

    • »
      »
      »
      3 года назад, # ^ |
      Rev. 2   Проголосовать: нравится +9 Проголосовать: не нравится

      I believe it is often not so much about talent but about background. Though you could just equate those two things as it is nearly impossible to change either and from practical point of view they're indistinguishable

      People tend to underestimate 15 years of rigorous and properly guided studying they've had

  • »
    »
    3 года назад, # ^ |
      Проголосовать: нравится +4 Проголосовать: не нравится

    So basically you mean practice topic wise?

»
3 года назад, # |
  Проголосовать: нравится +145 Проголосовать: не нравится

As we all know expert is $$$[1600, 1899]$$$ and candidate master is $$$[1900, 2099]$$$ so the gap is only $$$1$$$

  • »
    »
    3 года назад, # ^ |
    Rev. 2   Проголосовать: нравится +5 Проголосовать: не нравится

    Thank you for pointing this out. My original meaning is gap between a stable expert (rating keeps 1600-1899) and a stable candidate master (ratings keeps 1900-2099). An expert reach CM by chance and drop back to expert again (like me) does not count for stable candidate master.

    • »
      »
      »
      3 года назад, # ^ |
        Проголосовать: нравится +24 Проголосовать: не нравится

      I feel that if you regain CM after falling to expert quickly, then you are a stable CM. Everyone has bad days and on those days, you can fall back to expert. But if you truly deserve CM, you will be able to regain it quickly.

      • »
        »
        »
        »
        3 года назад, # ^ |
          Проголосовать: нравится +5 Проголосовать: не нравится

        Thank you. Currently I really have bad days, I failed nearly every contest for various of reason. I really remember the days when I was candidate master.

»
3 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I feel hardwork takes you to expert and also only hardwork will take you to master or grandmaster or legendary grandmaster.

»
3 года назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Class beats talent, order beats class.

»
3 года назад, # |
  Проголосовать: нравится +33 Проголосовать: не нравится

Yes

»
3 года назад, # |
  Проголосовать: нравится +53 Проголосовать: не нравится

The key is the word stable, and the answer is yes. Almost everyone's ratings fluctuate about 100 either side of their mean, so any CM is automatically either pushing Master or at risk of demotion back to Expert. If we define a stable CM as someone very unlikely to drop back down to Expert, then they are likely pushing Master at their limit. A stable expert is significantly weaker. At best they might hope to make low CM in a great contest and then fall back down.

Having been through this transition (I am now, I hope, 'stable' CM venturing into Master sometimes), the steps were:

  1. stable Expert: I usually could solve 3 problems in a contest; sometimes 4, sometimes only 2. I might make a number of mistakes along the way and I often took a significant amount of time to work out C / D. I almost never got beyond that, my code was ugly, and my approach was often based on hunches rather than proofs, and rarely on experience of similar questions. My first instincts were almost always greedy.

  2. Expert-CM fluctuations: my speed improved significantly to allow me to push towards CM. I was not consistent enough to maintain CM status in every contest, and on a bad day might still find myself in big trouble on an ad hoc problem. I would often get stressed out by a couple of WAs, knowing that my rating would suffer. In general, though, I was becoming competent at doing the basics right. I started questioning my solutions before rushing into the wrong approach.

  3. stable CM / occasional Master: this is where I am now. I usually can do A to D reasonably quickly on any Div 2 contest. I make far fewer mistakes. When I cross the Master boundary, it's usually because I've done A to D very quickly and sometimes with an additional E solve. I am more confident now in my ability to prove my approach rather than assume it. My DP in particular is getting better, and I have well-versed methods for anything standard to do with segment trees, graphs, DSU, etc. Problems below rating 2000 I expect to be able to do most of the time. Above 2400 I can almost never solve. 2100-2300 is the range where sometimes I get them, sometimes I don't.

If there's one takeaway from this, I think it is that I have progressed through these stages as I have become more confident in recognising problems and in coding them quickly when I do. When I have to think and do unfamiliar things, that's when I continue to struggle — I might solve the problem, but much more slowly and sometimes after a variety of approaches and errors. The difference is that the level at which you struggle hopefully gets higher.

  • »
    »
    3 года назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится

    "I almost never got beyond that, my code was ugly"

    I can totally relate to this. You have been in my friends list from a long time. I love your code's simplicity — they are very much readable to me.

»
3 года назад, # |
Rev. 2   Проголосовать: нравится +31 Проголосовать: не нравится

Thanks to all of you. After 2 months of practicing, I am currently master now, with 2200+ rating, highest of all time.

I feel like it needs good sense of the problems, and accurate implementation. If you have that sense, you can find out the hints easily and write the solution in a short time.

»
3 года назад, # |
  Проголосовать: нравится +16 Проголосовать: не нравится

Nobody's stable. I dropped from 1930 to 1696 within 2 contests :)

  • »
    »
    3 года назад, # ^ |
      Проголосовать: нравится +13 Проголосовать: не нравится

    Yes, and I know how that feel. The fluctuation in each contest is very big. Actually although I perform well in global round 20, I did very bad in kick start just 6 hours later. There are so much uncertainty in the contest.

»
3 года назад, # |
  Проголосовать: нравится +13 Проголосовать: не нравится

Master is easy, from master to GM depends on your harding work, and to IGM needs some speed or talent

»
2 года назад, # |
  Проголосовать: нравится -8 Проголосовать: не нравится
I would like to know if any people have the same feeling as me, like very hard to reach purple
Yup that's me. I reached expert in April 2020 and its been over 2 years and I still haven't reached 1900. I won't complain because I know there have been times in between where I completely gave up practicing, but this summer I'm giving it one more try, let's see where it goes.