Hey everyone, I just wanted to ask any roadmap which I can follow to become great like you guys in cp. I know everything is achieved by practice but I wanna know what to practice and what resources to look up to.
Can anyone suggest some good tips???
# | User | Rating |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3831 |
3 | Radewoosh | 3646 |
4 | jqdai0815 | 3620 |
4 | Benq | 3620 |
6 | orzdevinwang | 3529 |
7 | ecnerwala | 3446 |
8 | Um_nik | 3396 |
9 | gamegame | 3386 |
10 | ksun48 | 3373 |
# | User | Contrib. |
---|---|---|
1 | cry | 164 |
1 | maomao90 | 164 |
3 | Um_nik | 163 |
4 | atcoder_official | 160 |
5 | -is-this-fft- | 158 |
6 | awoo | 157 |
7 | adamant | 156 |
8 | TheScrasse | 154 |
8 | nor | 154 |
10 | Dominater069 | 153 |
Hey everyone, I just wanted to ask any roadmap which I can follow to become great like you guys in cp. I know everything is achieved by practice but I wanna know what to practice and what resources to look up to.
Can anyone suggest some good tips???
Name |
---|
I think everyone just practice, practice and then get good, they don't follow any roadmap.
You can subscribe Cookie197 Official(https://www.youtube.com/channel/UCHxexSPk6tEpZ1MVBq7ZK0Q)
and do more problems while listening music
So when I first started Codeforces back in December, I also spent time trying to find some magical list of problems or roadmap, and for some time I was following mostafa.saad.fci's junior training sheet and ahmed_aly's A2OJ ladders. But later around February-March, I switched to just randomly solving problems from Codeforces' problemset that were rated at my rating + 200, which I found worked a lot better for me. I think Errichto's advice of looking at the editorial after 20-30 minutes of being stuck is good. I learned a lot better when I spent some time on the problem so the problem was clear to me, but I just couldn't make the observation or necessary connection to solve it. Also, I always implement the solution to a problem after reading the editorial, since it helps me understand the details and the solution better. Maybe those other links will benefit you more, I don't know, but I think it's good to try different practice methods and see what works best for you.
In terms of learning topics, I look up algorithms and data structures when I come across something in an editorial that I don't know about. I read about the topic and understand it, implement it for that problem, and then just move on. I never practice by topic.
For resources you can probably just Google things when you need them, but I ended up using cp-algorithms and the competitive programmer's handbook the most. I mostly used the competitive programmer's handbook starting out, since I think they have very clear and simple implementations that made it easier to learn. When I started getting to a bit harder topics I switched to using cp-algorithms more. You can also usually find a good Codeforces blog explaining stuff. Personally, I enjoy reading more than watching videos, but sometimes I'll watch Errichto, SecondThread, or galen_colin's lecture videos. I especially enjoyed Errichto's explanation of sparse tables :).
Occasionally I'll watch some high-rated programmer's solution explanation for a problem I found difficult or interesting, since I like seeing how they think and the observations they make. For example, the ones I already mentioned along with Geothermal, neal, and ecnerwala
I will note though, that I spend far more of my time solving problems than reading or watching videos. Watching videos is mostly just for fun.
I think it's also good to keep in mind why you are doing cp. This helped me on the days when I failed at solving a few problems in a row and I felt like beating myself up or wondering whether I could still improve. This way you can stay motivated and keep practicing and getting better.
This was just what I found worked for me. I recommend to take parts of it and adapt it to your strategy. If you have questions, feel free to ask.
Good luck!
Damn that's really helpful. Gracias.
One question. Did you learn major data structures(till trees) first or you learn along the way while solving problems?
Almost everything I learned along the way. Before cp I actually never implemented a graph (and no trees either) before. I did some leetcode about a year ago, so I knew some basic dp and greedy, but that was it. The most advanced data structure I knew before cp was hashmap I think.
what maths have you done before
My only math experience is from the standard US math curriculum. I didn't do competition math since I didn't find it interesting at the time.
Hey! So i just started my journey and came across your post. I'm really impressed with the progress you made, though I also have some questions.
What i'm currently doing is searching for the range that I struggle solving problems on. For example, i'm currently searching for 1200-1300 difficulty on codeforces, and will probably do like ~100 problems before moving onto something like 1200-1300. Is this similar to what you did? I think this is probably the best way for me because I personally learn the most when I actually work on problems.
Also, how long do you take before looking at the solution? Sometimes I outright have no clue what to do so the maximum amount of time i spend working on the problem is ~15 mins. However, if i'm trying multiple approaches to a problem i usually try to exhaust them before, and only after 15 mins of blanking i look at the solution. I was wondering what you do because you've solved almost 2k(!) problems in 10 months. Do you just spend a lot of time/day for cp?
Thanks! I'm a complete noob who got interested in doing this instead of the boring leetcode problems and i'm trying to set myself up for success.
We practice basically the exact same way. Although now instead of setting some fixed number like "I will do 100 problems before increasing the difficulty" I just solve them until I feel comfortable with that rating range. For example once I can immediately come up with the solution in 15 minutes for the majority of the problems they're probably not challenging enough.
I follow the same editorial strategy you described, I just spend a good amount of time on this website. I also came here from Leetcode lol.
Be fast, because you should make Div2 A-D before the cheaters every contest
USACO guide
step 1: realize candidate master is not great
step 2: solve problems