Before the start of the blog, I'd like to thank this blog for motivating me to write it.
However, this blog is quite outdated in many factors like the rating system, and people starting cp in 2020 may have trouble following these. Therefore, I would like to write new tips for doing well in codeforces. The goal is getting to expert, or rating 1600.
I would write this in 3 steps, but the most important thing here is Practicing hard. You won't get to 1600 if you don't practice, you don't have to do it on the blog's way, but you should practice.
Step 1: from 1000(grey) to 1200(green)
First, read introduction to the new rating system and judge your skill. Note that you'll need to take part in about 5 contests to judge your skill. If your rating is under 1200, read the next part and practice.
If you use div3, you'll need to solve 3 problems in 30 minutes. That means you should solve div3C in 15 minutes. To practice it, you may choose 1000~1200 rated problem and try to solve it in 15 mins. If you have no idea in 15 mins, you should see the editorial.
If you use div2, you'll need to solve 2 problems in 30 minutes. The practice methods are the same, but do it in 1100~1300 rated problems and 20 mins.
You should solve problems until you get to green(it applies to all the other steps.
Step 2: from 1200(green) to 1400(cyan)
In order to get to cyan, you should know basic dp, greedy, bit operation, and math. Other things such as graph theory are not required to go to cyan.
First, you should learn about the algorithms. First, you need to know the concept of them, and you should practice. Practicing these algorithms can be done by solving 1300~1500 rated problems having these tags. You should see editorials quickly(15 mins) to learn fast.
You need to solve 4 problems in div3(You don't need fast solving) or 2~3 problem in div2(highly depends on difficulty, if it's 2 problems, you need to do fast solving). I would recommend to solve 1300~1600 rated problem(you can tag search them) and try to solve them in 15~30 mins and see editorial after 30 mins.
Step 3: from 1400(cyan) to 1600(blue)
Rating 1600, or the title "expert", requires quite a lot of algorithm knowledge. You need to know a bit advanced form of former four, graph theory, sorting, and binary search.
Again, you need to study these algorithms, the methods are similar to that of the cyan, but search them in the 1500~1700 range, and see editorial after 25 mins.
Div3 is not an option after 1600, so you should do div2 contests to get to blue. Div2 has varying difficulty, but you should solve 3 problems or more by 90% possibility. You should solve two types of problems. 1400~1600 problems(easy div2c) with fast solving in 15~20 mins. 1700~1800(hard div2c) problems without that much fast solving.
Virtual contest is a nice way to practice from here. You can pick a contest that you haven't seen any of its problems, do a virtual contest, and check your score at this site. You should type contest number, score, and penalty if you did an educational cf virtual contest. Set rating to 1600, and if the rating increase is +, that means you did well.
Conclusion
As mentioned earlier, practice hard. This is the only common factor that experts have. And for whom reached expert, I'll write a sequel from expert to master soon.
Auto comment: topic has been updated by jjang36524 (previous revision, new revision, compare).
For step 2, you mentioned to learn about algorithms. Can you clarify a bit what algorithms do one need to learn? Are prefix sums, DFS and binary search enough?
These are good, and you also need to know greedy and bit operators.
What do you mean by bit operators?
You may benefit from searching "bit operators" in your favorite search engine. That will be faster than getting an answer here, will probably get you more information, and won't require anyone else's time.
bitwise and,bitwise or,bitwise xor
& | ^
you can use this to do things like set
https://youtu.be/xXKL9YBWgCY
Is it worthy to spend only 20 mins to solve a problem, then look at the editorial immediately? Or we should dedicate around 1-2 hr(or even more than that) on a problem, and brainstorm on it, till we have no ideas left? What's your view on it?
Not OP, but solving Div 2A/B probably only need 15-20 minutes to be most effective. If you cannot figure out the "trick" within 15-20 minutes, it is likely more beneficial to read the editorial and move on, spending more time may be a waste of time. However, approaching harder, less trivial problems, working through ideas and problem solving for upwards of an hour has merit.
"Keep trying while you have new ideas, then look up the editorial after 15+ minutes of being completely stuck" — Errichto
So if you can generate new ideas, take more than $$$1-2$$$ hours, no problem with that. The idea is that you should take a look at the editorial only when you are completely stuck.
I generally tell newbies/pupils who ask me for advice to try hard for at least 30mins to 1hour. If even after that they don't have the slightest clue then they should read the editorial.
15mins seems too little time (outside of contest) to properly think of many different approaches.
Also unsuccessfully trying hard for a long time makes you desperate to know the correct approach. And when we read the correct approach , we don't forget it easily.
"trying hard for at least 1 hour" usually isn't longer than "trying while you have ideas + 15 minutes more"
Now that you pointed it out, it actually makes sense. First 15-45 mins we keep getting new "wrong" ideas then get stuck for 15 mins more and then finally check the editorial. XD
What Should I do if I am getting Wrong answer for 2-3 hours.Shall it would be better to see testcase or editorials or trying my own another one hour or leave it for some days and try after a few days???
If you think your approach is right and not able to figure out why it's WA, then try to see the test case and debug. If your approach is failing and you aren't able to think of anyway to fix that, then see the editorial.
Yes. I mean see editorial when you have no idea for some time.
is doing virtual contests bad practice strategy for newbies?
Virtual contest gets better if you solve more problems.
Is it recommended to do ahmed aly a2oj ladders?
That can be a good way.
Can you tell how much hours should give approx per day or how much problem solve per day for becoming expert?
I believe 50~100 problems per each step is enough, and it is your choice.
https://codeforces.me/blog/entry/59422?#comment-430419
Can you tell a bit details about this @tuwana
don't care about hours or days. just solve problems.
If you want to solve 5 problems in a day then just solve them.
If you want to solve 3 problems in a day then just solve them.
If you want to solve 1 problem in a day then just solve it.
in CP hours and days doesn't matter. Only matters is the years of practice . it can take up to 1 year for becoming the expert or just 6 months.
My man got some contribution by writing a blog and lost it all in the comments section.
Seriously though, do you guys have any tips for people like me who can solve problems on their own in the practice session but fail badly in the competition?
For example problem B and C from yesterday, I got the right idea in both of them but failed to implement them correctly under pressure (I've been stuck on B for 30 minutes because I wrote wrong variable names so decided to move to C, where I've gotten the right idea in 2nd attempt, failed two more times and after polishing two ifs got it right).
Same problem with me. I can solve 1500 in practice but it takes me from 40 mins to 1 hour ish. 1600s I can solve lesser but takes me not less than an hour.
I have no clue why I have such a hard time solving them in the contest. (I solve 1500s on few days and 1600 almost never. 1700 and above I can never solve.)
learn to write code clearly(this is important when you learn about data structure in 1600~2000)
in practise,you can read your code after writing it.
what about candidate master? could you also suggest something on that?
Can you write an additional step to be able to reach purple please. Thanks
learn more about graph and data structure.
Practise more and more
SPyofgame let's try
Sure, thanks UwU
I think that so easyyyyyyyyyyyy !!!
Now see my graph and tell me what should I do. I have solved more than 1000 problems but still on pupil....what should i do. Should i quit ?.
In just 7 months you have solved 1000+ problems. which is very impressive.
according to cf visualizer you have solved -
that's why you were able to solve 3 problems in most of the past contest which is enough for becoming secialist or expert. However for expert+ ranking you have to focus more on problem D and problem E. One thing i also notice that in recent contest you were not able to solve even a single problem maybe you were in stress or you got stuck in in a problem for very long.
if pressure was the cause -> then in next contest forget about rating. play it like a game. not matter how much -ve delta you will get.
if you were stuck in a problem -> then try to move on to the next problem by fully forgetting the previous problem and do your best then comeback later to the previous problem.
and also quitting not be the best option because only 7 months have passed away give 1 more year to cf then decide what to do next. and you also were the mid expert.
Motivation : Java
Thank you so much for taking so much effort. I think in last contest I didn't perform well because I was expecting more. Now i will focus more on D and E.But I can't move to next problem because i think that if I cannot solve easier problem then how can i solve harder one so I stick to only one, i think this is the mistake I make.Thank you so much
bohot_hard_123
.This comment aged well ig :)
part 2 when ?
Why are you being downvoted? :(
Long ago, I had screenshot the step 2 and saved it in my desktop homepage. Sometimes I would open the image and read the same lines and tried to improved myself according to that. Surprisingly, after a long time, I became a specialist in the last div3 contest. Thank you so much for the tips. It really worked.
Now doing the same for step 3. Wish me luck!
" You should see editorials quickly(15 mins) to learn fast" -->Certainly, should I do this?
Sure
is solving problems in range current raiting + 200 is better or doing virtual contest? and for example solvig hard problems in 1 hour for every is better than see editorial quickly or not?
I did it, what next?
be optimus prime