Sunday 4 December 2016

Which all data structures and algorithms does one need to learn for CP?


Below you can find the topics that are required to be done for CP.
  • Binary Search 
  • Quicksort 
  • Merge Sort
  • Suffix Array : 
  • Knuth-Morris-Pratt Algorithm (KMP) 
  • Rabin-Karp Algorithm 
  • Tries 
  • Depth First Traversal of a graph 
  • Breadth First Traversal of a graph
  • Flood Fill
  • Dijkstra's Algorithm 
  • Binary Indexed Tree
  • Segment Tree (with lazy propagation) : 
  • Persistent Segment Tree
  • problems same as BIT,
  • Z algorithm 
  • Floyd Warshall Algorithm 
  • Sparse Table(RMQ)  
  • Heap / Priority Queue / Heapsort
  • Suffix Automaton 
  • Lowest Common Ancestor :
  • Counting Inversions
  • Suffix Tree 
  • Dynamic Programming : chapter from clrs(essential)
  • dp on trees 
  • Basic Data Structures 
  • Graphs 
  • Minimum Spanning Tree 
  • Combinatorics 
  • Union Find/Disjoint Set 
  • Knapsack problem 
  • Aho-Corasick String Matching Algorithm 
  • Strongly Connected Components 
  • Bellman Ford algorithm 
  • heavy-light Decomposition 
  • Convex Hull 
  • Line Intersection 
  • Sieve of Erastothenes
  • Interval Tree 
  • Counting Sort
  • Probabilities
  • Building up the recurrence matrix to compute recurrences in O(logN) time
  • Network flow 
  • K-d tree 
  • Deque
  • Binary Search Tree 
  • Quick Select 
  • Treap/Cartesian Tree
  • Game Theory 
  • STL (C++)
  • Maximum Bipartite Matching
  • Manacher's Algorithm 
  • Miller-Rabin Primality Test
  • Stable Marriage Problem
  • Hungarian Algorithm
  • Sweep line Algorithm 
  • LCP 
  • Gaussian Elimination
  • Pollard Rho Integer Factorization
  • Topological Sorting
  • Detecting Cycles in a Graph : Directed ,Undirected 
  • Geometry 
  • Backtracking : N queens problemTug of WarSudoku
  • Eulerian and Hamiltonian Paths 
  • Graph Coloring 
  • Meet in the Middle
  • Arbitrary Precision Integer(BigInt)
  • Radix SortBucket Sort
  • Johnson's Algorithm 
  • Maximal Matching in a General Graph : Blossom/Edmond's Algorithm with implementationTutte Matrixproblem
  • Recursion
  • Inclusion and Exclusion Principle
This were the topics I could recall right now. Will be updating them if more are there.
In my further blog posts I will be writing about these topics and will be sharing the links to each of the topics mentioned above along with the tutorial and the problems that have been asked in the various contests.

Remember the key to success here is to just practice. You will learn by doing wrong. By that way you can enhance your ability to think.

~~ Cheers!!

Follow the blog for more updates and subscribe it!!


No comments:

Post a Comment