mochow's blog

By mochow, history, 9 years ago, In English

I have participated at 80 contests and solved a good number of problems on CF. But I am nowhere near any improvement. I should have been CM a long time ago.

I know most of the typical algorithms and try harder problems like div2 D, E but none of them are helping much. I mostly have contest time weakness than offline problem solving.

Continuous failure is kind of killing me and letting me drown in frustrations. What should I do? I badly need a way out here.

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

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

Well, maybe you think too much about your rating.

I'm 99% sure that you have improved, even if it can be difficult to see. There are lots of random factors in rating, and sometimes it doesn't reflect the "real" skills.

Learning is important, rating is not important.

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

    But being low rated is making me difident in contests. I have almost zero level of confidence now.

    It looks like I am trapped in a circle. I simply cannot break it.

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

      So I think I'm somehow in the same situation. I try to remain in div1,but these lately rounds don't help me,especially the last one.After thinking for 20 min about a legit solution for Div A,except choosing a maximal n for which I can run my solution in time,I gave up.Also I didn't understand problem B statement...

      However,there are some nice rounds where you can make div A,B.

      Since last year,when I seriously working pretty hard,I got some thinking improvements and data structure knowledge,but sometimes it doesn't work...I like long contests,like codechef monthly challenges. For example, I got a good solution and easy solution after thinking like two hours.It felt so good and it came to my mind that you are not a good coder if you are good at fast contests,but if you get in the end a solution after some time,or learn from the problem and use it to solve others.

      If you don't feel good to participate in contest,take a break,let the contests pass and do them offline,and then when you are ready,participate in one with good condition :) Or make some other accounts,so the rating doesn't affects you.

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

        A gap might help me be calm.

        Thanks for your advice. :)

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

        "Or make some other accounts,so the rating doesn't affects you."

        No, don't do that. It's against rules. But if you're seeking long-term improvement, don't care about your current rating. Think about your rating after a year:

        If you lose 200 rating points in a single contest now, its effect on your rating after a year will be negligible.

        If you, however, solve a problem that was challenging for you and come up with some new ideas during contest, it will help you a lot in the future. Even if you make some stupid bugs in implementation and fail the contest itself, what you learned remains yours.

»
9 years ago, # |
  Vote: I like it -7 Vote: I do not like it

Rating is just a number , it doesnt Only depend on programming and algorithmic skills . in contests speed and controling nerve is as important as skills , if you can solve good problems out of contests it shows your improvment , for example I think my skills are not bad but in every Div.1 contest because of that mental fear of going back to Div.2 I cant do my best( even in solving problem A ) . but in Div.2 contest im relax and I dont do bad ;) in total dont think about rating , be Relax and enjoy programming ;)

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

    You are quite right I guess. I have seen myself being nervous in too many contests on CF. It greatly hampers my performance and calmness.

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

      About a year ago me too was TOO nervous at contests. There are things, that helps me(so I'm not sure, that it will help you)

      1) Write virtual contests. They are really better than just upsolving. You see timer and participants, sending solutions, but it won't affect your rating.

      2) Relax. Codeforces round is not a contest, for which you have prepared for years. You need to thing: "Ok, I will loose %points_number% rating... What would it change? I will write next contest better"

      3) Create a plan and follow it. You need to make an easy for you purpose and achive it. You can say, for example, "I will solve 2 tasks at this round. It means that you have an hour for task." If you solve a problem after, for example, 30 minutes you will think "Ough! I'm better than I thought!"

      4) Don't think about results/rating. Imagine, you are just upsolve problem. For me it's good idea not to look at scoreboard(expect cases, when I don't know, which problem is easy, but it's rare at CF)

      5) Don't abuse yourself. You can abuse your computer, slow internet, even jury, but not you. If you seat on contest and think "I'm so stupid, I won't solve anything" lazy brain says "Yes! I'm studid! So I even won't try!"

      Hope it will be helpful

      P.S My English is terrible, sorry

      UPD One more thing, I forgot about it yesterday. Don't be afraid of hard tasks. For example, you have never solved Div2 D and Div2 E during the contest, but Div 2 E at this contest can be easy for you(for exapmle you have seen something similar), so it's good idea to read all problems and think abou it

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

You should probably change learning strategy.

I'm not the best example since I just got CM, and I still have lots of stuff to learn, I guess my rating will probably fall down in the future. I also know the reason and (I guess) the solution.

When it comes to competitive programming, there is huge set of tricks and algorithmic tools which help you solve problems. It is very important to understand these tools, seeing why they work, when and how to use them. Deep understanding is very important. And that's my main problem, I don't understand things deep enough, that's probably why I can't see patterns when trying to figure out solution. Some people just are very talented and learn stuff faster, that's the unfortunate truth ;).

Normally when I try to solve problem I try to give myself some time, if I still can't solve it I just give up and look up the solution, but I try to understand it as good as I can, and try to figure out why I couldn't come up with solution. Being honest with yourself is also quite important, just make sure you really understood everything. Pick challenging problems, practice everyday, don't give up on a problem and you should see the progress.

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

    Solving problems is a must I know but looks like it is not helping me much in contest performance. I have solved good number of quality problems.

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

    [user:goovie]you have shown really amazing improvement . Can you please tell me the reason behind this.

»
9 years ago, # |
  Vote: I like it -48 Vote: I do not like it

Just give up :(

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

    Better you should

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

      I am blue, btw. And you are.... well....

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

        And also I'm a purple and you...So go to the hell ;)

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

          Well, my second account is purple... So go to your hell alone

          ¯\_(ツ)_/¯

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

            на кодфорсесе нельзя несколько акаунтов удали коментарий или зависники настучат и тебя заблокируют((((

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

.

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

Look at the following diagram:

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

    cool, i thought it was like f(x) = -e^(-x)

    is this a personal experience or what ?

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

    Valid point I guess.

»
9 years ago, # |
Rev. 2   Vote: I like it +32 Vote: I do not like it

This post explains what has worked for me. It may or may not be suitable for you.

I had 70+ contests and mostly blue color rating, always telling my friends "I'm not really into rating, codeforces is fun itself". But then it began frustrating me: I attended several summer schools, evening courses, trainings. And I stood where I was rating-wise after numerous contests.

It is well-known that "upsolving is good", you hear that here and there. But after hearing this from MikeMirzayanov in person at "Sazanka" summer school I was enlightened. I've upsolved problems from that school, but it still had no effect on my rating (summer 2013 — winter 2014). I gave up codeforces for half a year.

On the next summer, I've decided to set goals for myself. Since I had 80+ contests behind me, it was natural to upsolve problems from that contests. There were mostly A and B accepted in each, so my aim was to get accepted on C's, D's and E's.
I made a table on a paper and filled it with "+" marks to identify solved problems. Each day I would solve some fixed amount of problems, weighted by their value in contest. For example, solving E was like solving 3 or 4 C's.
I kept up with it for 2 months of summer vacation. At that time, most of Div2 contests were completely accepted. The "solved table" became very dense, it was very pleasing to see. But still I could not feel nor see any effect!

It finally appeared after one month, even without me doing something. You can see how my rating graph rushed from purple to light orange, then orange. Every contest was a "new max rating, wow!". My friends congratulated me. Then it went off, back to purple, and finally settled in light orange. I see that change solely as a consequence of my two-month upsolving.

This summer, I did the same thing, but with my Div1 contests. It was very hard, and I still have many problems unsolved. It brought me up to my new highest rating. Who knows, what comes next.

PS This summer I started to upsolve TopCoder as well. I'm mostly blue there after 50+ contests, with some dips into green. I'm still blue, so you should not expect "overnight success".

UPD. 28 september: I'm finally yellow on TC with 1638 rating!

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

    It seems fascinating. :)

    And your rising up was pretty cool!

    I know upsolving will make a difference.

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

    What do you mean by upsolving? Did you read the solutions after some time and then implement them or solve the problems completely by yourself?

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

      I try to solve the problem without editorial, but it sometimes does not happen. After 2-3 days without success I read editorial and\or others' codes. I would say that I read editorial 20%-30% of time.

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

You used to be grey, now you're blue — upper green. And you say you haven't improved?

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

    Comparing to the amount of effort I gave, yes.

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

      You have what, a few hundred solved problems and 1800 submissions? I'm pretty sure I had more when I started at CF, a lot more. I still dropped to green first.

      And reds have 0 solved problems from time to time, too.

      You think on a kiddy scale.

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

        I have nothing to say if you would like to assume things about me without knowing the facts.

        It is okay, BTW.

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

          The only facts I can have about you are your submission history here. And I make no further assumptions. Seriously, don't think this is going to be easy.

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

    I didn't improve

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

      You have 18 contests and your main activity here is shitposting. Small wonder.

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

      Well, in Bengali, the word "nami" means "going down". so, I cannot think of any other way but changing ur handle to improve. :P

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

May be This can help you. And I can`t disagree with others: only practice, only code =)

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

Maybe your practicing method is just wrong...

If you solve problems without asking friends and read tutorial,codes and... there isn't any reason that you can't solve problem in contests too...

So just don't jump from the problems easily,If you think a lot for a problem and solve it just by yourself the problem's idea would stay in your mind more...

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

I think you should have some specific rules to follow to make your learning more powerful, so here are some:

1 — Try to learn a new algorithm for a specific time then try to solve some problems related to the problem that you've learned.

2 — Don't solve random problems when you're learning something new.

3 — When you feel that you're not ready to learn something new, you can solve easy problems so this will make you more confident!

4 — When you learn 2-3 new algorithms you can take a break and solve some problems that combine your new algorithms if found.

5 — If you found an interesting problem save it in your favorite folder :D and when you have a free time you can try to solve it.

6 — When you get stuck with a problem, you can try to read the editorial and the solutions for the problem.

7 — Don't try to solve the problems that are rare and hard , so you can solve the easy ones then when you master them you can learn how to solve the hard ones.

I hope it helps!

Sorry for my bad English

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

    I have actually been following most of your suggestions by the way. Looks like I will have to practice a lot more than I can even imagine. :)

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

Stop thinking about the rating and just continue to do what you should do, Keep practicing. If you can solve harder problems offline, you can solve it during contest. It only takes one good contest and you will be CM. Just stop thinking about the rating and don't get frustrated. And take a look at the following topcoder rating graph:

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

    That graph is pretty cool.

    What I have realized is that I have only one option left: practice even more. A lot more.

    Thanks for your advice Raju bhai. :)

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

Thank you for your question, and thank you guys for your priceless responses, I was in the same situation, but after reading these comments, myself got revived and I will keep up practicing, you're such an amazing community :D

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

    Here's my million dollar app idea: Have a way for people to send some kind of virtual currency to each other as a thank-you for good posts. We could call it "plusvotes".

»
9 years ago, # |
Rev. 2   Vote: I like it +5 Vote: I do not like it

Fustration would normally lead to more problems solved. Just use it in your advantage. If this doesn't help , measure your problem solving skills in a constructive way.

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

I did 150 rated contest still I am green :D So your condition is much better than some people like me . I am not the best person to advise but stop thinking about rating its just a number . Enjoy the beauty the problem solving . If you don't give up success will come sooner or later and it's true .

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

Just an idea. If the problem is really in contest time concentration try working out before the contest. A long fast paced walk can also do. You can experiment with the type of workout, its timing and try to think about different things/not to think at all. The point is that by the end of the workout your brains is ok, but you're a bit tired, so you have power for only one thing, either just solve problems or think about rating)) (Don't forget about proper nutrition after the workout.)

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

About a large number of tasks you bent ... I got over the summer to earn 800+ tasks =)

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

    Well, that's cool!

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

      but the problem is that the number of tasks does not mean anything

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

        Then what is meaningful actually?

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

Remember your past mistakes and try to avoid them in the upcoming contest.Remember your practice problems so you can identify similar problems in future.Resolve those problems which taught you new concepts.Those who repeat their mistakes never learn.And please don't take a break,each break comes with a possibility that you might never return at all or return back after a long time which will take away whatever you have learned till now.Taking a break is not an option. All the best. :)