Hi, I am a high school student trying to improve in order to compete in the IOI. Yesterday, after 4 months of practice, I have become a specialist on codeforces. Now that I have somewhat got used to how I should practice constructive and greedy algorithms, I have a question for you. What topics should I focus on studying next? By topics I mean stuff like graphs,dp (etc.). Please assist me with your knowledge. Thank you in advance.
i'm have been practising almost 14 months.But i can't reach Cyan. How have you been practising.Would you like share your how you have been practising.
When I first started in July, I learnt a lot of STL functions from various YouTube channels. This helped me simplify my code drastically, so I solved implementation problems for a while to get used to them. Then I got familiar with the concept of binary search and solved a lot of problems from various websites about it. I also learnt a few very very basic algorithms like prefix sums and suffix sums. Then, I learnt a great amount of graph algorithms. I solved around 70 problems from the difficulty range (1400-1700). This really augmented my implementation and recursion skills. Then I realised I had to focus more on greedy and constructive algorithm problems. So I solved a lot of (1200-1500) rated constructive and greedy problems. I think this was the real game-changer for me. Then I learnt introductory dp so that I could at least solve choice problems like knapsack. Finally, for the last month, I have been solving random problems from topics I know to not forget them and try to learn new things with ease later on. This was my strategy. I hope I explained it clearly. Have a good day.
I see that you are solving a lot of 1000-1300, You may make your solving range harder
i have an idea.i have been solving every rating bigger than 100 problems.now i have been solving 1300 rating problems if i will solve bigger than 100 problems.i will solve 1400 rating problems.is it good idea or bad idea
It will take a lot of time. you can spend this time on harder problems, this will be more productive
yes you are right.thanks for your idea.
If you want to get more rating (become an expert) codeforces, you need to ensure that you can complete D in each round.
You can view the algorithm tags of C and D in Div.2 in problemset to see what algorithms you need to learn.
According to my experience, C generally does not need to use any algorithm (except for brute force, greedy and other common algorithms), and D involves DP and tree (usually only need to traverse and operate in the process of traversal, so it is similar to DFS).
Thank you very much, I have learned simple algorithms like DFS,BFS,topsort and DSU ans solved around 70~ problems. Now that you have given me this info, I want to ask, what difficulty range should I study with?
There's many good problems on Codeforces. You can start from around 1500.
But if you want to go deeper in OI, you need to try a wider range of problems.
Most Codeforces problems only contain some of the algorithms of OI. In China, we study algorithms on Chinese websites. I think there are also English websites for learning algorithms that I don't know. In my opinion, Codeforces is more about examining algorithms you've learnt and practicing mathematical thinking problems(constructve algorithms, greedy, etc).
Sorry that part of my comment is translated with a poor translator(and my poor English).
Thank you so much,have a nice day!
solve A2OJ, I think it may help. I recently found out about it, and in my opinion the site really helps if you solve ladders and don't skip tasks
Thank you very much, will check it out for sure.
https://usaco.guide/gold/
Pure gold :D. Thank you
check the link below...
https://drive.google.com/file/d/1J2x8pIYQ3MXANgvzOgBciWd3d79j_Exa/view
:)