Hey everyone!
I’m a 3rd-year undergrad, and I really want to get better at competitive programming. Right now, on the basis of the other cp platforms, I feel like I’m decent, but not good enough. If I keep doing what I’m doing, I feel like I’ll get stuck at 1600-1700 (Expert) and won’t go further. I want to break that ceiling, but I don’t know how to go about it.
Here’s where I need your help:
- Resources: What are the best resources to learn advanced stuff? Like, not basic things but topics like Segment Trees, Union-Find, Fenwick Trees, Persistent DS, etc. Any good YouTube playlists, blogs, or books you’ve used and liked?
- Contests: How do you approach contests? Like, how do you pick problems and manage time without panicking? After a contest, how do you upsolve? Do you only do problems you couldn’t solve, or should I re-solve the ones I did?
- Practice: How do I know what problems to solve? Should I focus on problems around my rating or push myself to do harder ones? How do I balance “grinding easy problems” vs. learning new concepts?
- Advanced Topics: What are the must-know advanced topics that really help in contests? Where can I find resources to learn these?
- Time Management: I have time to practice daily or at least weekly (I’m planning for higher studies, so I can afford to spend some time). What kind of practice routine actually works? I’d love to hear from people who’ve been in this situation or who’ve broken through this “plateau.” Any advice, personal experiences, or tips would mean a lot!
Thanks a ton in advance!!
Resources: I've watched some of Errichto's YouTube videos (especially about Segment Trees). Union-Find is a little bit more tricky to learn. You have to keep searching for a good place to learn for you.
Contests: For contests, usually, I have templates, Google add ons (Competitive Companion), and Onenote open for some drawing in case I get stuck. I don't usually upsolve (for some reason), but I would recommend doing it! Do not resolve the problems you already solved. That is a waste of time!
Practice: Don't "grind easy problems." This does not help you at all. Instead, solve harder problems that you would normally be unable to solve. After around 30 minutes of thinking, if you still cannot find a solution after multiple tries, look at the editorial.
Advanced Topics: You don't need to learn too many advanced topics for below master (I'm assuming). You only need the basic skills (DP, Brute Force, Greedy, Binary Search, etc.) and good math skills (high school and college level). If you want to go above and beyond, I would say just search for some good topics to learn. I can't really give you any tips for this, since I'm not even master yet.
Time Management: I would say do the same thing as I said in the practice section. Try to solve problems you would normally not be able to solve (1100-1300 for you, maybe) and give some time into solving it. If you really can't solve it after multiple tries, look at the editorial, understand what it is saying, and think what you can do in the future.
I would say these are my tips for you!
Thanks for the tips mate!! I really appreciate you taking time to help me. I also wanted to ask you how should I choose practice problems. I saw that choosing +200 rating of the current rating and solving them in newer to older sequence is best, but is this a formidable way?
By the way, I just started watching Errichto's channel. It is really good. Thanks for the suggestion.
"Need Help Getting Better at CP! Stuck Around 1600-1700-ish"
I can clearly see that.
Anyways, If you want to get better, then the only way to do so is to practice.
I used to solve 5-10 problems a day for a couple weeks straight, but not too easy problems. The ones that you find not that easy/ a bit hard but you can still do them after like an hour of trying.
That boosted my rating from 900 -> 1100 and I perform in pupil level in almost every contests nowadays.
"I can clearly see that."
I don't exactly understand what you meant, but I said that thing because I am knight in leetcode, and I am able to solve 3 questions consistently in div-2 which would saturate my rating at around 1600. I know it is still not so good, I'll improve :)
Anyways, thanks for your tips :)