Greetings to all!
How far can a person go in Codeforces through only improving their problem-solving skills, intuition and these following concepts for practice?
- C++ Basic Syntax (Variables, Operators, Conditional Statements, Loop, Function, Recursion, Basic Pointers, Class)
- Basic Math (Number Set, GCD, LCM, Factorization, Number System Conversion, Equation Solving, Basic Combinatorics, Bitwise Operation & Basic Concepts)
- Basic Operations like Insert/Delete/Travers of Linear Container (i.e. Array, Stack, Queue, Linked List etc.)
- Basic Searching (Linear/Binary) & Sorting of Linear Container
- Standard Template Library (Vector, Set, Map, Iterator)
- Basic Graph & Tree Concepts (Definition Concept & Traversing -- DFS/BFS)
When I am saying the word 'Basic', it means the minimum level a person should learn to know about the topic, primarily.
and the more generalized question,
What are the minimum learning requirements for each level (Pupil, Specialist, ....) in Codeforces nowadays, if their practice, consistency, solving speed & other factors are optimal?
A person can reach the Pupil to Specialist level in Codeforces by mastering the concepts you've listed.
However, for higher levels like Expert and above, a deeper understanding of advanced algorithms, deeper understanding and usage of STL, in-depth understanding of number theory,basic string algorithms,dynamic programming, and more complex graph theories is necessary.
Consistent practice and problem-solving experience play crucial roles at all levels.
Thanks, brother. Noted!
I don't know why people are downvoting the parent comment. An opinion is neither correct nor incorrect; it's a perspective shared with others. There is no need to downvote for sharing and helping others. If you didn't like the words, that doesn't mean it should be suppressed either. He did not claim to state the ultimate truth.
Good points, however I would like to say that in my opinion one does not need segment tree, fenwick trees, string algorithms, for reaching expert.
stl, dp, greedy, basic number theory and combinatorics, dfs , bfs should suffice. You just have to practise problems upto 1700 difficulty and from what I have seen its often speed that differentiates between expert and specialist.
Thanks for being more specific about topics and speed.
With speed, expert could be reached by just knowing the stuff listed (and a little more practice on DFS/BFS) should be enough to at least slowly reach expert.
From my experience, you are incorrect, as one can easily get to Master with pure problem-solving skills. Now, I'm not stating that the person will do well in every single contest, as there are problems that involves standard techniques, but their rating will converge to Master (or higher) eventually, since the majority of contest on Codeforces is doable with only bare-minimum knowledge.
Honestly, I've looked through all your posts and I realized that you're not interested at all. If I hadn't looked at the dates, I would have thought that you had just started your journey like me, but you have been programming for 5 years. You don't even have the most basic skills to learn programming: 1. Do not run away from difficulties. 2. Learn new things. 3.Passion to solve difficult problems. I don't know how you haven't figured it out in 5 years, but think again if you need it at all or if you think you need it.
Thanks, man. Acknowledged! By the way, the post was out of curiosity, nothing else other than that.
Also, Good Luck on your journey. I hope you will be doing great and love what you do.
Codeforces problems rely more in problem-solving and intuition than in knowledge. So you might be able to get to expert.
But from expert DPs will gatekeep you from higher ratings. And graphs appear rarely in Div2 ratings, you can probably survive without learning them.
Thankyou for this blog, I got to know a lot through this comment section <3
I am glad it helps. I have seen many guidance posts on Codeforces for improving competitive programming using the platform in various ways. In my opinion, a person should know what Codeforces is and how it works before choosing the platform. Then, the person may create their own guidance and gain confidence after making improvements more easily. That's why the question arose. If I don't know the path, I can't make a proper strategy or trust any premade strategy to move forward due to endless possibilities and uncertainties. I may doubt myself or the path after any setback and seek another roadmap to feel the safety of my comfort zone. Not everyone has the same struggles and strengths, so knowing oneself is the most important thing for any journey with a growth mindset.
i cant say higher than CM as i havnt reached higher than CM yet but i think its pretty easy to reach CM only with problem solving skills and alittle bit of algorithmic knowledge
Thanks. Could you please specify or list the required knowledge and its level, if possible? A generalized explanation of your learning journey would be beneficial for us.
Galen colin road map is great for knowledge wise
Okay. I don't think these topics are at a base or minimal level for the particular Codeforces rank. The learning baseline can vary from person to person, but your suggestion is noted!