I've been doing competitive programming for about 2-3 months and have gone through these topics so far:
- Basics (Conditional statements, loops, switch)
- Bitwise operators
- Arrays, Strings
- Greedy algorithms
- Linear search, Two pointers
- Binary search
- Prefix sum
- Sorting
- Number Theory (sieve, modulo, exponentiation)
- Pointers
- STL
- Recursion
- Basic Probability and Combinatorics
Lately, I've been practicing questions in the 1000-1400 range.
Next, I'm thinking of diving into:
Stack
Queue
Tree
Heap
Hashmap
Trie
Backtracking
Graph (BFS, DFS, Shortest Path)
Dynamic Programming
Does this sequence seem okay? Any tips on how to approach these topics?
I have done same topics which u have done with stack and queue extra and believe me just practice this much you can reach 1400+ by this much topics only once u reach 1400 then study dp and graphs before that there will be no use as u will not be able to solve those problems anyway in the contest
What range of problems should I focus on? I find it hard to solve constructive algorithms. Any suggestions for that?
I think graph before tree? tree is just a special graph, so understanding graphs first is better in my opinion, the rest seems fine
Thanks! I don’t have much idea about these topics (except Stack and Queue), so Tree should be between Graph and DP, right?