General References:
https://codezonediitj.github.io/blog/cplp/
Problems to do:
Todos:
- Write a template for the Stern-Brocot tree
- Study canonical representations
- Practice advanced bipartite graph probs
- Practice more painting/coloring probs
Week 1-2:
- Study advanced dynamic programming:
- Review the basics of dynamic programming, such as the principle of optimality and overlapping subproblems.
- Study advanced techniques, such as matrix-chain multiplication, longest common subsequence, longest increasing subsequence, and knapsack problem.
- Resources:
- Algorithm Design Manual by Steven S. Skiena
- Dynamic Programming for Coding Interviews: A Bottom-Up approach to problem-solving by Meenakshi and Kamal Rawat
- https://codeforces.com/problemset
Week 3-4:
- Study advanced segment trees:
- Review the basics of segment trees, including how to build, update, and query segment trees.
- Study advanced techniques, such as lazy propagation, persistent segment trees, and heavy-light decomposition.
- Resources:
- Competitive Programmer's Handbook by Antti Laaksonen
- https://www.geeksforgeeks.org/segment-tree-set-1-sum-of-given-range/
Week 5-6:
- Study graph coloring:
- Review the basics of graph theory, including graph representations, traversal, and graph algorithms.
- Study graph coloring algorithms, including greedy algorithms, backtracking algorithms, and advanced algorithms, such as Welsh-Powell and DSATUR.
- Resources:
- Graph Algorithms by Robert Sedgewick and Kevin Wayne
Week 7-8:
- Practice, practice, practice: