I see a lot of newbies trying to get better at cp. But working hard isn't enough. You need to have a goal in mind and follow it till the end (like becoming X till Y). Here I am gonna give some tips on how to become master.
Participate in contests
For master you need rating. To get rating you have to participate in contests. Nothing more needed to be said.
Solve problems
To get a good place in a contest, you have to solve problems. So, obviously, try to solve as many problems as you can. You might say that me saying this is useless and idiotic, but I disagree! I see a lot of people that give up after solving a certain amount of problems, but don't be like those people. They will never achieve anything meaningful in life.
Have the correct mindset.
Competitive programming is just as much about programming as it is about having a good mindset. It's all about competing, so you have to be in the right state of mind. You might ask me what it is, but I can't tell you, since it's different for everyone. What works for me might not work for you and vice-versa. The main idea though is that you should be ready to dominate and destroy all relationships with your friends in order to beat them. There are no friends on the battlefield. Treat rating as the most important thing in the world and you will start getting more and more of it.
Move your body!
During a contest, you have to think and stay focused for a lot of time and it is very tiring to keep focus for such a long period. So, you should try to stand up and walk in your room for a while, go outside or even do gymnastics. What I usually do is I do $$$30$$$ push-ups every $$$30$$$ minutes. And after each AC, I go outside for $$$5$$$ minutes.
Love programming!
You have to love what you do and do what you love! Competitive programming isn't a job, you should enjoy it! If you don't enjoy it there is no point in doing it. I see a lot of people that do competitive programming to get job interviews, you should stop immediately! Only solve problems you find interesting, there is no need to torture yourself as life itself is hard enough, why make it worse?
Reflect on your progress in a journal.
Sometimes you might be down, because of a huge rating loss, for example how I lost 18 rating in Codeforces Round 778 (Div. 1 + Div. 2, based on Technocup 2022 Final Round). But, you shouldn't be sad. You made a lot of progress to get where you are! If you keep a journal of your progress it won't be only in your mind but will be out there in the world where you can't ever deny it. Reading it will make you feel way better as you will see how far you've come. It will also remind you of some algorithms you have learned along the way.
Start small
Solve an $$$800$$$ rating problem, if you can solve it without help then solve a $$$900$$$ rating one afterward. If you can solve it as well add $$$100$$$, else subtract 100. Repeat until you become Master.
Write every problem on paper.
After completing a problem, you should rewrite the code on paper. You might think that doing so is redundant, but the reason you are solving problems is to get better, don't forget. Writing something on paper takes time. That will help you to memorize and understand your solution better because you have more time to reflect on it. Sometimes I even start with writing the code on paper. This way I have to write the right code on first try.
Make friends.
It is important to have friends that keep you motivated. You should be inspired by them and try to destroy them in contests.
Grind.
Grinding is essential. You need to solve as many problems as you can, but don't lie to yourself, solving a harder problem is always better than solving a lot of easy problems. As a wise man once said, Quantity < Quality. I practice for around $$$10$$$ hours per day. I know it's not much, but I have school to attend and other responsibilities.
Relax.
You need to be rested. Practicing while tired is almost useless and competing is free rating loss and what idiot wants that? You need at least $$$8$$$ hours of sleep per night and don't forget to eat, as I do sometimes sadly...
Study Algorithms.
A lot of people say that algorithms on Codeforces are not that important nowadays, but I don't care! Algorithms are beautiful and you should study them! You should study, understand and appreciate them. Algorithms are like art and should be treated like it. I usually read algorithms when I relax as stated in the previous step.
Read books.
Reading improves your way of thinking. You relate to the characters of the given book and get inspiration from them. I often get my inspiration for solutions based on books I have read in the past. Lately, I have read Ion and used the greedy algorithm the protagonist used in the book and it was brilliant!
Learn minimum 3 DP optimizations.
DP optimizations make your mind think differently. They are essential to understanding the core of competitive programming and appreciating complex ideas. I recommend starting with Convex Hull Trick, as it is the easiest one. While you are at it, learn Li Chao Tree too, since it is pretty much the same thing but doesn't require the same monotonicity rules. Then go to something a little harder like Divide and Conquer and Alien's Trick. If you wanna get fancy, you may want to study Rudy's Trick (Rudy's trick is not a DP optimization but it is an interesting optimization worth noting). But it isn't very common.
Progress is impossible without change, and those who cannot change their minds cannot change anything
Marinush
Thank you all so much for upvotes and support! I wish you all good health, love, high esteem and respect from loved ones, achieving your dreams to infinity, happy life, have magical moments and memories, and obtain what you really want, because that is the only way to fulfillment, realization and happiness! May god bless you and your loved ones! Amen.
Wonderful blog but the gymnastic and the pushups, Huh? 0rz
Yes, i think working out is just as important as practicing! Healthy body = Healthy mind ready to take on some hard problems.
I agree. I get back pain and headaches if I don't take breaks in between and continue sitting for long hours. Also, productivity goes down in this case.
A sound soul dwells within a sound mind and a sound body.
+1
ty, I will try
How old are you? Your profile picture is a small boy's picture.
I am 12 years old, but I am against the idea of judging someone based on their age so please don't do it.
Okay, let me enter depression mode!
I really hope my son will be like you :)
Are you the real Mckenna Grace?
I don't think so
What is Rudy's trick?
the most probably this is some Moldavian Esoteric Unorthodox technique to arouse the interest around the blog, by writting comments asking what is "Rudy's trick".
Thank you for asking! You can refer to this message where I explained it.
It's a secret cp technique, which Rudy1444 taught us.
This is the best thing that I have seen in a month!!!
30 pushups every 30 minutes lol!! I can't even do 15 pushups a day
I love how you go from some motivational/somewhat generic stuff for the majority of the blog to DP optimizations lmao. As someone who can solve Div2E on a semi-regular basis, you do not really need DP optimizations, that's required for some Div 1D/E problems normally and if you can solve them, welp, you are already like GM level. While we are at DP optimizations, could you elaborate on Rudy's trick? I never heard of it and a quick google search isn't doing me any good thanks.
Actually, Rudy's trick is not a dynamic programming optimization. I just added it as a bonus because I didn't have anywhere else to place it, but I find it a great and very useful technique. But, it is used to solve this problem.
You use divide and conquer. But not every value works, so you can't divide into exactly 2 equal ranges. But, if we keep 2 pointers from both ends and check if we can divide the array at either one of those pointers and then keep decreasing them until we don't find such a position, we can prove the total complexity will be O(NlogN) instead of O(N^2), since we will either find the "good" indices fast, or we will divide the searching part into $$$2$$$ parts which can be computed faster.
Rudy's trick is pretty well known in China. It's an optimization technique to increase the number of states that you can visit within a short duration.
Using Rudy's trick, this blog has reached a wide audience in a short time
I would like to thank AHMADUL for teaching me this trick.
Another example problem on this trick :- https://tlx.toki.id/problems/troc-15/E/
Shit, I am one dp optimization behind
I'm 3...
I'm 4...
"Sometimes you might be down, because of a huge rating loss, for example how I lost 18 rating" you kidding me?
You just said not to do competitive programming for the Job interviews and suggested to do only problems that we find interesting also advised not to torcher ourselves for that. So why should we do competitive programming, if it is not for job interviews or to get a good job? I just don't get it. I know CP is fun and I love it too. But doing it without the intention of getting a job and practicing it for 10 hours per day (as you just said) for what?
Please correct me if I misunderstood your statement.
Well, you should see people who grind League of Legends (LoL) for hours to hit diamond although it doesn't benefit them IRL.
In my mind, those two feelings aren't really different. The only difference is I am hard stuck in silver in LoL and have eye problems so I can't grind league anymore.
Agreed with above. if you are solving problems mainly for interviews, grind Leetcode instead of Codeforces, which has a much more standard and relevant set of problems. Codeforces is pretty adhoc and mostly for competition training/fun.
Buy yourself a slave.
After every few lines, I get a feeling that the blog is satirical. But then a lot of things do make sense. Is it satire or not, lol?
Well, its a kid. Is kid explaining life satirical?
Poe's Law (-forces).
"I practice for around 10 hours per day. I know it's not much, but I have school to attend and other responsibilities". OMG
Thank you sir for creating an alt account to then act condenscending. actually no, fuck you
Thank you for your comment! Your feedback is greatly appreciated and will be considered.
Firstly get on my level, kid, then talk.
challenge accepted dipshit
See you at ejoi.
Nice blog! just have one query. My rating is around specialist! My final goal is CM. If I keep doing problems rated 1600-1700 for the next 2-3 weeks, I know it will help me to get out of my comfort zone but sometimes in contests, I have a hard time solving 1300 rated problems(50% of the time because of misreading) which make me feel like I should not be solving +400 Rated problem at least now. What is the right thing to do in this situation?
You will solve 1300 tasks faster if you participate in contests. So forget and solve 1600-1700
I doubt whether you are a genius or someone's alt
Obviously
what happend to your rating?
It went up.
If you practice 10 hours a day, why have you solved only 68 problems? Proves that you're an alt
maybe he uses some other platforms
Even if he uses other platforms, it's not possible to become a Master just by solving 68 problems on CodeForces. You have to at least solve a minimum number of problems and participate in a number of contests to recognize the pattern of problems on CodeForces. And a 12-year-old who just participated in 13 contests and solved 68 problems became a Master? Not possible. He surely has another account and the chance of him being a 12-year-old is pretty low.
Average newbie telling master he couldn't have become master. Thank you for BRUH09273.
Marinush
I never said that you couldn't become a Master, but that you're using a fake identity. Do you have any proof that you're the person in your profile picture?
Do you have any proof that you're the person in your profile picture?
Marinush
Of course I'm an alt account and I'm not the person in my profile. But the person we're talking about here is you, not me. So you have to give proof
Here you go dipshit:
Marinush
How come you have a "buletin" if you are twelve, where in Romania and Moldova you need to be at least fourteen to get one? I smell some bullshit
That totally looks like an edited photo. The fonts don't match and the picture clearly looks like its edited and you show that you have edited it by putting (aster) after M under your gender
Nah bro Im from Moldova, its totally legit. Mine looks like this too.
I identify as Master.
Marinush
I'm sold, can you make me a Botswana passport please?
Sorry, I don’t forge documents. It is a very serious crime.
Marinush
Can you please make a post on how to un-become a master?
Sure, when I will un-become one I will make such a post!
Where can i find the blog ?
Where can i find the blog ?
Where can i find the blog ?
Where can i find the blog ?
Where can i find the blog ?
Where can i find the blog ?
My greatest strategy to un-become master is to never reach it.
TimDee
I made it, good luck!
Here it is!