Hey everyone!
I’m working on strengthening my competitive programming skills and want to ensure I’m covering all the essential algorithms and concepts. Here's what I have in mind so far:
Math & Number Theory
GCD/LCM, Modular Arithmetic, Prime Algorithms (Sieve), etc. Recursion & Backtracking
Classic problems like N-Queens, Subset Generation, and optimizations. Dynamic Programming (DP)
Knapsack, Subsequence Problems, Matrix DP, etc. Sorting & Searching
Binary Search, Two-pointer/Sliding Window, Merge/Quick Sort. Graph Algorithms
BFS, DFS, Shortest Path, MST, and Topological Sorting. Greedy Algorithms
Activity Selection, Interval Scheduling, Huffman Encoding. String Algorithms
KMP, Z Algorithm, Tries, and Suffix Arrays. Bit Manipulation
Subsets, Masking, and XOR Tricks. My Question: Am I missing any crucial algorithms or topics that I should focus on for competitive programming? What algorithms have helped you solve tricky problems?
I’d love to hear your recommendations or insights! Let’s build a comprehensive list together.
include ternary search
Kuhns algorithm , Segment tree , DSU , D&C , Sparse table. I think those algorithms are also important
If you're struggling as a beginner, you don't need to focus on advanced algorithms right away. Instead, concentrate on solving more constructive problems and mastering some essential techniques like:
These foundational tricks will help you build a strong problem-solving base.