Dynamic Programming
- Read Dynamic Programming Notes Hackerearth
- Read DP Tutorial involving grids
- Read TopCoder Tutorial on DP
- Solve the following classical problems:
- Solve the following MISC problems:
- Educational DP contest on AtCoder
- DSA Learning Series: Week 7 - DP By CodeChef
- Marathon DP - 01
- V Planet DP - 2
- V Planet DP - 3
- V Planet DP Week 5
Trees & Graphs
β | Problem Link | Finished |
---|---|---|
β ββ | Diameter of a Binary Tree | |
β ββ | Path Sum | |
β β β | K-th smallest element in a BST | |
β β β | Find duplicate subtrees | |
β β β | Lowest Common Ancestor of a binary tree | |
β β β | Sum of distances in tree |
- π₯Finding Bridges in Graphs
- π₯Articulation Points
- π₯Dijkstra's Shortest path
- Bellman Ford algorithm
- π₯Floyd Warshall's algorithm
- π₯Kruska's Minimum Spanning Tree
- π₯Prim's MST Algorithm
- UVa 00315: Network (finding articulation points)
- UVa 00796: Critical Links (finding bridges)
- CF 193A: Cutting Figure
String Algorithms
- Basics of String manipulation
- KMP algorithm
- Z algorithm
- Z algorithm II
- Manachar's algorithm
- Manacher's algorithm II
- Rabin-Karp and KMP TopCoder
β | Problem Link | Finished |
---|---|---|
β β β | Find the substrings | |
β β β | The Cheapest Palindrome | |
β β β | Largest Lexicographical Rotation II | |
β β β | Monk and Monster | |
β β β | Prefix Number | |
β β β | Last Forever |
β | Problem Link | Finished |
---|---|---|
β ββ | Sherlock and the Valid String | |
β ββ | Highest Value Palindrome | |
β β β | Sherlock and Anagrams | |
β β β | Common Child | |
β β β | Build a Palindrome |
β | Problem Link | Finished |
---|---|---|
β ββ | Petya and Exam | |
β β β | Password | |
β β β | Prefixes and Suffixes |
Data Structures
Square Root Decomposition
- Tutorial 1: Base Concept + Mo's algorithm
- Tutorial 2
- Tutorial 3 : Read the comments
- Tutorial 4 : Video Lecture, find slides in video description
- Tutorial 5 : Exhaustive PDF
- Tutorial 6 : Mo's Algorithm
Segment Tree
- Tutorial
- [ ]
- D. Distinct Characters Queries
- A. Knight Tournament
- F. Ant colony
- E. Drazil and Park
- C. DZY Loves Fibonacci Numbers
Fenwick Tree
Since getting better at competitive programming takes a lot of effort, you need to keep practicing a lot of problems. This list will keep you focussed and you will have a target with you that you need to finish atleast these many problems before moving on. It can help you organize your practice.