Description
In this course, you will :
- Understand and apply key techniques in Competitive Programming.
- Discover advanced techniques for optimising naive solutions.
- Online coding competitions and code-thons on Codeforces and HackerRank.
- Prepare for ACM-ICPC, Google Kickstart, CodeJam, and other events.
Syllabus :
- Time / Space Complexity Analysis
- Data Structures & STL Containers
- Bitmanipulation Basics
- Bitmanipulation Problems
- Big Integers
- Linear Recurrences & Matrix Exponentiation
- Pigeonhole Principle
- Mathematical Expectation
- Inclusion Exclusion Principle
- Prime Numbers & Factorisation
- Extended Euclidean's Algorithm & Applications
- Theorems in Number Theory
- Combinatorics
- Recursion
- Backtracking
- Binary Search
- Divide & Conquer
- Greedy Algorithms
- Meet In The Middle
- Segment Trees
- Lazy Propagation
- Fenwick Trees
- Sqrt Decomposition
- Combinatorial Games
- The Game Of NIM
- Graph Traversals
- Graphs as Trees
- Lowest Common Ancestors
- Directed Graphs & SCC's
- Disjoint Set Union Data Structure
- Spanning Trees
- Shortest Paths Algorithms
- Classical Dynamic Programming
- Advance Dynamic Programming Problems
- Pattern / String Matching
- Geometric Algorithms - Convex Hull
- Interactive Problems
- Random Randomisation
- Policy Based Data Structures
- CP Guidance