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.
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.
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.
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.
A gap might help me be calm.
Thanks for your advice. :)
"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.
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 arenot 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 , beRelax
and enjoy programming ;)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.
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
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.
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.
[user:goovie]you have shown really amazing improvement . Can you please tell me the reason behind this.
Practice. No other way.
Just give up :(
Better you should
I am blue, btw. And you are.... well....
And also I'm a purple and you...So go to the hell ;)
Well, my second account is purple... So go to your hell alone
¯\_(ツ)_/¯
на кодфорсесе нельзя несколько акаунтов удали коментарий или зависники настучат и тебя заблокируют((((
.
I have nothing else to do.
Look at the following diagram:
cool, i thought it was like f(x) = -e^(-x)
is this a personal experience or what ?
Valid point I guess.
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!
It seems fascinating. :)
And your rising up was pretty cool!
I know upsolving will make a difference.
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?
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.
You used to be grey, now you're blue — upper green. And you say you haven't improved?
Comparing to the amount of effort I gave, yes.
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.
I have nothing to say if you would like to assume things about me without knowing the facts.
It is okay, BTW.
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.
I didn't improve
You have 18 contests and your main activity here is shitposting. Small wonder.
Thanks
You're welcome :D
But I have about 40 contests. I forgot password of my previous account.
Well, in Bengali, the word "nami" means "going down". so, I cannot think of any other way but changing ur handle to improve. :P
May be This can help you. And I can`t disagree with others: only practice, only code =)
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...
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
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. :)
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:
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. :)
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
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".
Can we get this implemented?
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.
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 .
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.)
About a large number of tasks you bent ... I got over the summer to earn 800+ tasks =)
Well, that's cool!
but the problem is that the number of tasks does not mean anything
Then what is meaningful actually?
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. :)