ElectroMaster3's blog

By ElectroMaster3, history, 3 years ago, In English

today marks my 1 year of competitive programming experience and i did not feel satisfied for the time i've invested for this activity.My performance is really unstable and i did not find a solution for my problem.it is really sad since when i started c++ i felt really enthusiastic to become a grandmaster but turns out i can't even break the barrier of newbie in 1 year.

The first time i went to this website is around 1 month after i started c++.i saw so many great problems and feel really eager to solve every one of them.but i was lazy for few months and decided to change account to this.Being determined to improve,i tried to practice everyday,saw how people code,met new friends and tried to learn new technique everyday.I always feel something is missing when i did not solve a problem in a day.

Thus begin my struggle.I could not solve a problem in a contest,or if i did,i can solve 1-2 problems slowly.i was very confused because i've been practicing problems yet i'm still inconsistent.You can check my contest history.After the contest was over,i waited until the problem rating appears.turns out i could not solve problems that are 800 rated.800 rated is the easiest problem in codeforces but somehow i could not solve it.So i deciced to grind 800-1000 rated problems.

After solving tons of problems in 800-1000 i still feel like nothing's clicking on my mind.i tried to seek help but nothing really helps me.i tried to gain positivity.i always say to myself i can do it.but in reality,i could not.i tried to join contest as much as possible but nothing really changes.it is just me struggling to get to 1000 rating.

After struggling,my friends said that i need to take a break and enjoy life more.i followed their suggestion.i play games at the time when i usually grind.i only study 1 hour a day.i gained a little bit of happiness but my performance dropped.u can see from my graph it went from 900 to 688.

i feel like this is the right time to quit codeforces as i do not know what to do anymore.Everyone says practice makes better and here i am,being one of the example that practice is not always gonna help.sometimes,giving up is an option.

goodbye

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

| Write comment?
»
3 years ago, # |
Rev. 2   Vote: I like it -19 Vote: I do not like it

What you expect from yourself after solving too many easy problems ?

Most of your solved problems are <1200. Stop crying over your rating and first practice some hard problems above your comfort level and learn some new theory/ concepts.

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

    You are right,i need to practice above my comfort zone.but the thing is,try to check my rating first.its 600 and i do mostly 800-1100.how is 800 not above 800.the point of me doing 800-1000 rated problems is that i want to be consistent at those rating first,but im unable to.if i can't even finish the first step,how am i going to climb?

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

      In my experience, 800-1100 problems are not of much use. They are just click-bait type. You will get the solution in one go or not and if not, just see the editorial because they always have some observation. I think only hard problems are of use. You always get something to learn from them (tricks, theory, etc.). You will not get anything from solving easy problems. Solve hard problems and then you always get the idea for these easy problems. Solving hard problems developes your brain for critical thinking. After solving some hard problems, you will mostly get the intuition for these easy problems. Think about 1-2hrs for 1300-1500 problems and then look at editorial. This process will take time but one day, this will definitely increase your ratings. (Solving one hard problem is much better than solving many easy problems)

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

        Yep, A-B's are often kind of mathy, guessy or catchy type ) But C-D's are often the same thing + programming and data structures :)

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

      I don't know for sure, but it looks like 800 is just the minimal possible rating for any problem on the codeforces platform. So if we hypothetically get a trivial "add two numbers together" problem in some contest, then it will be still rated as 800 regardless. Additionally, if you have problem tags visible when doing your practice, then this is a major spoiler. Which makes your experience very different from what you normally encounter in real contests.

      You can try to do virtual contests as your daily practice and see if this improves anything.

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

      actually it is if u want a rating X u should solve >=X and <=x+200. u'r confusing it with "if u r at a rating x u should practice >=X and <=x+200.

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

You need to believe

»
3 years ago, # |
Rev. 3   Vote: I like it -10 Vote: I do not like it

I understand your situation because I was in the same situation you are(see my graph), I just suggest you some things that I have done, 1. Solve problems between 1000-1300(In your case 1200+ as you solved many problems<1200) sorted by user submission. 2. Watch streams of CP'ers and Learn new techniques from them. 3. Solve atcoder problems to increase your speed. 4. Most important — upsolve the problems after contest, you learn many new things there too. 5. Read this for more information. You can take some break If you want but don't miss contests. It helped me and I am still following this but now I am solving 1200-1400 problems and increase range with rating(rating+200). Hope it will help you too, following it at least 1 month and write me your results.

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

Amazing. So is it easy for you to solve A, B in contest now? If not I'd like to see and hear how you solve this simple A, B problems. From some contest, that you didn't solve before. If you can do youtube videos.

And about those problems that you've already solved, how many of them can you re-solve in 30 min?

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

why are you doing more than 350 A problems, stop doing A and B's, start doing div 3 C, D, E's and div 2 B, C, D's

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

    i... think div3 E is a bit too far, last one was 1800, the one before was 2000, same goes for div3 D but some are still doable, from my own experience solving div2 AB (or div3 ABC/ABCD) was enough as a newbie

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

      Those are very inflated though. I'd argue a 2000 Div. 3 is easier than a typical Div. 2 1800 problem. Just take any F from Div. 3 they are usually 2300-2400 whereas in reality you just implement lazy propagation on segment tree to solve them.

      Here's an example of a Div. 3 2100: https://mirror.codeforces.com/problemset/problem/1551/D2

      Compared to Div. 2 1700: https://mirror.codeforces.com/problemset/problem/1255/D

      Very similar idea is used to solve both problems. Perhaps the Div. 3 one is slightly more difficult, but I'd say roughly they are about equal in terms of level of difficulty. Just one note — don't focus on the editorial of 1551D2 as it makes it more difficult than it actually is — a simple greedy strategy gets the job done (take a look at my submission to both problems to compare).

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

solves 800-1000 problems

doesn't reach > 1000

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

My opinion: you should stop solving random problems, it's better to solve topicwise. For example, you can use USACO Guide.
If you solve topicwise, you will learn some common techniques more easily. If you solve random problems, it may happen that two problems use very similar techniques, but you don't flag them as "important" or "recurring" because in the meanwhile you've solved some completely different problems.

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

    how do i use usaco?

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

      Don't necropost. I can feel the people downvoting both of us in near future.

      Besides that, are you so retard to not see that GET STARTED button in USACO?

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

Don't bother seeking advice on cf blogs, they are full of shit and retards.

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

there's nobody expecting you to break newbie in a specific amount of time, it took me about 2 years (ignore my first few contests, ratings started at 1500 when i made my account), i recommend solving slightly out of your comfort zone for improvement (this can be said for pretty much anything), as a general rule, if you can solve a problem of X rating very easily you should try something harder, if you think a lot and cant come up with anything you either need to lower difficulty or learn a new topic that is required for that problem (although for 800~1200 there's not a lot of topics)

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

UNLUCKY!!

»
3 years ago, # |
  Vote: I like it +16 Vote: I do not like it
This helps me whenever I'm feeling down
»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Try AtCoder.

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

Solving 800-1200 problems can make you good at implementation and programming but in most of the contests problems C,D and after them need some data structures and some ideas that you can't get from solving easy problems. If u don't have any problem with implementation and coding then go learn some useful ideas and It will improve your performance don't worry

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

Screenshot-20210820205005-1116x517

Everyone says practice makes better and here I am, being one of the examples that practice is not always gonna help.

Well, sorry if this sounds bad, but out of all the practice you have done, approx > 80% of the practice is just problems < 1100 rated ones. And in that sense, they don't really count as practice tbh. "Practice makes you better" is a very vague thing to say, "Correct practice makes you better" is the better thing to say, and solving 800s is not at all practice.

If you start solving at least 1400 rated problems you would notice the growth in you. Yeah, I know it's very hard sometimes but believe me that would be very much rewarding than solving 800s

Ok now coming on to other things.

I always feel something is missing when I did not solve a problem in a day.

Believe me, you are not alone. Many people including me end up spending days on a single problem and that's completely fine :)

After solving tons of problems in 800-1000 I still feel like nothing's clicking on my mind.I tried to seek help but nothing really helps me.

  1. I suggest to try doing cses problemset along with the help of book they have provided.
  2. Do Atcoder beginner contests. They are very educational.
  3. Try learning things like binary search, 2-ptr from EDU section (best material for these 2 topics out there imo)
  4. Even if things like above options don't work out, go for something easy like leetcode (Yeah, I know people here underestimate this site but it helps with standard things)

I hope I was able to help in some manner and wish you good luck :)