Things to study from Competitive Programmers Handbook
- Basic Techniques
- Time Complexity
- Sorting
- Data Structures
- Complete Search
- Greedy Algorithms
- Dynamic Programming
- Amortized Analysis
- Range Queries
- Bit Manipulation
- Graph Algorithms
- Advanced Topics
- 1. Binary Search
- 2. Quicksort
- 3. Merge Sort
- 4. Suffix Array
- 5. Knuth-Morris-Pratt Algorithm (KMP)
- 6. Rabin-Karp Algorithm
- 7. Tries
- 8. Depth First Traversal of a graph
- 9. Breadth First Traversal of a graph
- 10. Dijkstra's Algorithm
- 11. Binary Indexed Tree
- 12. Segment Tree (with lazy propagation)
- 13. Z algorithm
- 14. Floyd Warshall Algorithm
- 15. Sparse Table (LCP, RMQ)
- 16. Heap / Priority Queue / Heapsort
- 17. Modular Multiplicative Inverse
- 18. Binomial coefficients (nCr % M)
- 19. Suffix Automaton
- 20. Lowest Common Ancestor
- 21. Counting Inversions
- 22. Euclid's Extended Algorithm
- 23. Suffix Tree
- 24. Dynamic Programming
- 25. Basic Data Structures
- 26. Logarithmic Exponentiation
- 27. Graphs
- 28. Minimum Spanning Tree
- 29. Efficient Prime Factorization
- 30. Combinatorics
- 31. Union Find/Disjoint Set
- 32. Knapsack problem
- 33. Aho-Corasick String Matching Algorithm
- 34. Strongly Connected Components
- 35. Bellman Ford algorithm
- 36. Heavy-light Decomposition
- 37. Convex Hull
- 38. Line Intersection
- 39. Sieve of Erastothenes
- 40. Interval Tree
- 41. Counting Sort
- 42. Probabilities
- 43. Matrix Exponentiation
- 44. Network flow
- 45. K-d tree
- 46. Deque
- 47. Binary Search Tree
- 48. Quick Select
- 49. Treap/Cartesian Tree
- 50. Game TheoryP
- 51. STL (C++)
- 52. Maximum Bipartite Matching
- 53. Manacher's Algorithm
- 54. Miller-Rabin Primality Test : Code
- 55. Stable Marriage Problem
- 56. Hungarian Algorithm, Tutorial
- 57. Sweep line Algorithm
- 58. LCP
- 59. Gaussian Elimination
- 60. Pollard Rho Integer Factorization, problem
- 61. Topological Sorting
- 62. Detecting Cycles in a Graph
- 63. Geometry
- 64. Backtracking
- 65. Eulerian and Hamiltonian Paths
- 66. Graph Coloring
- 67. Meet in the Middle
- 68. Arbitrary Precision Integer(BigInt), II
- 69. Radix Sort, Bucket Sort
- 70. Johnson's Algorithm
- 71. Maximal Matching in a General Graph
- 72. Recursion
- 73. Inclusion and Exclusion Principle
- 74. Co-ordinate Compression
- 75. Sqrt-Decomposition
- 76. Link-Cut Tree
- 77. Euler's Totient Function
- 78. Burnside Lemma
- 79. Edit/Levenshtein Distance
- 80. Branch and Bound
- 81. Math for Competitive Programming
- 82. Mo's Algorithm