Home / Competitive programming using C++

- What is competitive programming?
- Benefits and importance of competitive programming
- Overview of popular coding platforms and competitions

- Review of fundamental C++ concepts and syntax
- Understanding data types, variables, and control structures in C++
- Recap of C++ features relevant to competitive programming

- Efficient input/output methods in C++
- Handling standard input/output streams
- Using file input/output for large test cases

- Understanding time and space complexity
- Big O notation and its significance
- Analyzing the complexity of algorithms and data structures

- Array manipulation and searching
- Stack, queue, and deque operations
- Linked lists and their variations
- Trees (binary tree, binary search tree, segment tree, etc.)
- Graph representation and traversal techniques

- Implementing various sorting algorithms (selection sort, insertion sort, merge sort, quicksort, etc.)
- Binary search and its variations
- Efficient searching techniques (hashing, binary search trees)

- Understanding the concept of dynamic programming
- Solving problems using dynamic programming techniques
- Memoization and tabulation approaches

- Overview of greedy algorithm paradigm
- Identifying and solving problems using greedy strategies
- Implementing greedy algorithms effectively

- Graph traversal algorithms (BFS, DFS)
- Shortest path algorithms (Dijkstra's algorithm, Bellman-Ford algorithm)
- Minimum spanning tree algorithms (Prim's algorithm, Kruskal's algorithm)
- Topological sorting and strongly connected components

- Prime numbers and prime factorization
- Modular arithmetic and number theory algorithms
- Permutations and combinations
- Probability and counting techniques

- String manipulation and matching algorithms
- Pattern searching (KMP algorithm, Rabin-Karp algorithm)
- String compression and decompression

- Advanced data structures (trie, segment tree, Fenwick tree)
- Computational geometry algorithms
- Game theory and dynamic programming
- Network flows and maximum flow algorithms

- Problem-solving techniques and approaches
- Breaking down problems into smaller subproblems
- Implementing efficient algorithms and optimizing solutions

noob to master © copyleft