List of Topics for programming Competitions 1. 2. Basic Geometry/Euclidean Geometry/Coordfinate Geometry/ [3-D variants of everything].

Computational Geometry. a. Graham Scan algorithm for Convex Hull O(n * log(n)). b. Online construction of 3-D convex hull in O(n^2). c. Bentley Ottmann algorithm to list all intersection points of n line segments in O((n + I) * logn). ■ Suggested Reading 1. d. Rotating Calipers Technique. ■ Suggested Reading - ■ Problems - Refer the article for a list of problems which can be solved using Rotating Calipers technique. e. Line Sweep/Plane Sweep algorithms ■ Area/Perimeter of Union of Rectangles. ■ Closest pair of points. ■ Suggested Reading 1. ■ Problems - Follow the tutorial for list of problems. f. Area of Union of Circles. g. Delayunay Triangulation of n points in O(n * logn). h. Voronoi Diagrams of n points in O(n * logn) using Fortunes algorithm. i. Point in a polygon problem ■ O(n) solution without preprocessing. ■ O(logn) algorithm with O(n * logn) preprocessing for convex polygons. j. Problems on computational geometry ■ BSHEEP, BULK, SEGVIS, CONDUIT, RUNAWAY, DIRVS, RAIN1, SHAMAN, TCUTTER, LITEPIPE, RHOMBS, FSHEEP, FLBRKLIN, CERC07P, BAC, ALTARS, CERC07C, NECKLACE, CH3D, RECTANGL, POLYSSQ, FOREST2, KPPOLY, RAIN2, SEGMENTS, ARCHPLG, BALLOON, CIRCLES, COMPASS, EOWAMRT, ICERINK on SPOJ. ■ CultureGrowth, PolygonCover on Topcoder. k. Suggested Reading ■ Computational Geometry: Algorithms and applications. Mark De Burg. String Algorithm. a. KnuthMorrisPratt algorithm. ■ Problems - NHAY, PERIOD on SPOJ. ■ Suggested Reading 1. Cormen chapter on Strings. 2. b. Aho Corasick algorithm. ■ Problems - WPUZZLES on SPOJ. c. Suffix Arrays ■ O(n^2 * logn) Naive method of suffix array construction ■ O(n * logn^2) method of suffix array construction ■ O(n * logn) method of suffix array construction. ■ O(n) method of suffix array construction ■ O(n) LCA preprocess on Suffix Arrays to solve a variety of string problems. d. Suffix Trees ■ O(n) construction of Suffix trees using Ukkenon’s algorithm. ■ O(n) construction of Suffix Trees if provided with Suffix Arrays using Farach’s algorithm. e. Suffix Automata ■ O(n) Suffix Automaton construction. f. Dictionary Of Basic Factors ■ O(n * logn) method of DBF construction using Radix Sort. g. Manachar’s algorithm to find Lengh of palindromic substring of a string centered at a position for each position in the string. Runtime -> O(n). h. Searching and preprocessing Regular Expressions consisting of ‘?’, ‘*’. i. Multi-dimentional pattern matching. j. Problems on Strings [can be solved with a variety of techniques] ■ DISUBSTR, PLD, MSTRING, REPEATS, JEWELS, ARCHIVER, PROPKEY, LITELANG, EMOTICON, WORDS, AMCODES, UCODES, PT07H, MINSEQ, TOPALIN, BWHEELER, BEADS, SARRAY, LCS, LCS2, SUBST1, PHRASES, PRETILE on SPOJ ■ Basic Graphs [beginner]. a. Representation of graphs as adjacency list, adjacency matrix, incidence matrix and edge list and uses of different representations in different scenarios. b. Breadth First Search. ■ problems 1. PPATH, ONEZERO, WATER on SPOJ c. Depth First Search. d. Strongly Connected Components. ■ problems 1. TOUR and BOTTOM on SPOJ. e. Biconnected Components, Finding articulation points and bridges]. ■ problems 1. RELINETS, PT07A on SPOJ. f. Dijkstra algorithm ■ problems 1. SHPATH on SPOJ. g. Floyd Warshall algorithm ■ problems 1. COURIER on SPOJ. h. Minimum Spanning Tree ■ problems 1. BLINNET on SPOJ. i. Flood-fill algorithm j. Topological sort k. Bellman-Ford algorithm. l. Euler Tour/Path. ■ problems - WORDS1 on SPOJ. m. Suggested reading for most of the topics in Graph algorithms ■ ■ Also refer to the tutorial for problems concerning these techniques. ■ Cormen chapter 22 to 24. Flow networks/ matching etc etc. [Interdiate/Advanced]. a. Maximum flow using Ford Fulkerson Method. ■ Suggested Reading 1. ■ problems - TAXI, POTHOLE, IM, QUEST4, MUDDY, EN, CABLETV, STEAD, NETADMIN, COCONUTS, OPTM on SPOJ. b. Maximum flow using Dinics Algorithm. ■ Problems - PROFIT on spoj. c. Minimum Cost Maximum Flow. ■ Successive Shortest path algorithm. ■ Cycle Cancelling algorithm. ■ Suggested Reading 1. d. Maximum weighted Bipartite Matching (Kuhn Munkras algorithm/Hungarian Method) ■ problems - GREED, SCITIES, TOURS on SPOJ | e. Stoer Wagner min-cut algorithm. f. Hopcroft Karp bipartite matching algorithm. ■ problems - ANGELS on SPOJ. g. Maximum matching in general graph (blossom shrinking) h. Gomory-Hu Trees. ■ i) Problems - MCQUERY on Spoj. i. Chinese Postman Problem. ■ problems - ■ Suggested Reading - j. Suggested Reading for the full category -> ■ Network flow - Algorithms and Applications by Ahuja ■ Cormen book chapter 25. Dynamic Programming.




6. http://www. http://www. Fermat's http://www. DP on probability spaces ■ http://www.topcoder. .com/stat?c=problem_statement&pm=10335 http://www.2 from Number Theory by SY Yan 2.Sieve of Erastothenes ■ Suggested Problems .com/stat?c=problem_statement&pm=8610 A good collection of problems ■ http://codeforces. 31.6 from Number Theory by SY Yan ■ Problems 1. http://www.php?section=problems&id=66 4.topcoder.topcoder. 2. ■ ■ ■ e. Wilson theorem ■ nCr % p in O(p) preprocess and O(log n ) query k. Suggested Reading for Number Theory ■ Number theory for computing by Song Y Yan [ Simple book describing concepts in details ] ■ Concepts are also superficially covered in Chapter 31 of Introduction to Algorithms by Cormen ■ d.Dynamic Programming(DP) as a tabulation method ■ Cormen chapter on DP Standard problems (you should really feel comfortable with these types) ■ http://www.topcoder. DP with datastructures ■ http://www.easier characterizations looking from the end ■ http://www. http://projecteuler. 1. http://projecteuler. Chapter 1 from Number Theory for Computing by SY Yan [ Recommended ] http://www.topcoder.topcoder.topcoder. http://www.topcoder. Euler Totient theorem ( totient function.topcoder. GCD on SPOJ 2.basic postulates [Including modular linear equations .9 Cormen ■ Problems 1.topcoder.spoj.php?section=problems&id=70 2. 31. 2. e.3 from Number Theory SY Yan 2. Suggested Reading . ■ ■ http://www. Project Euler 271 2. http://projecteuler.appspot. Integer Factorization ■ Naive O(sqrt(n)) method ■ Pollard Rho factorization ■ Suggested Reading 1.spoj. Continued fraction and Pell's equation] ■ Suggested Reading 1.Fermat primality test. 8.topcoder. http://www. Number ■ ■ i. Solving in the reverse .1.topcoder.spoj. problems . Lucas Theorem ■ http://problemclassifier.jsp?search=dp&usr= 7. http://www.3 and 31. ■ Counting/optimizing arrangements satisfying some specified properties ■ http://www. g.refer to the topcoder ■ Strategies and expected values ■ Stirling numbers http://www.html g. GCD using euclidean method ■ Suggested Reading 1.topcoder. 3.topcoder.PRIME1 on SPOJ f. 31. http://www.topcoder.topcoder. DP on trees ■ http://www.topcoder.topcoder.topcoder. Logarithmic Exponentiation ■ Suggested Reading i. SOLSTRAS on SPOJ b. 31. State space reduction ■ http://www. ■ http://www.onlinejudge. a. Problems a. http://www. http://www. 31. www.topcoder.topcoder. Primality tests ■ Deterministic O(sqrt(n) ) approach ■ Probabilistic primality tests .topcoder.4 from Cormen 3. b.6 Modulus arithmetic .com/tc?module=Static&d1=tutorials&d2=greedyAlg ■ ■ ■ j.2 from Number Theory by SY Yan 2.5 from Cormen Suggested Reading ■ Chapter on Greedy algorithms in Cormen. http://www. Miller-Rabin Primality test c. 31. 2.php?section=problems&id=64 ■ ■ d. Symmetric characterization of DP state ■ http://www. a.php?section=problems&id=65 3.spoj. primitive roots ) ■ Suggested Reading c.spoj.topcoder.8 c.topcoder. f. http://www. 5. Prime generation techniques .com/tc?module=Static&d1=tutorials&d2=primeNumbers ■ Problems 1.7 from Cormen ■ Problems 1.topcoder. Chinese remainder theorem ■ Suggested Reading 1. Suggested Reading a. Cormen 31. k. order .com/stat?c=problem_statement&pm=8570&rd=12012&rm=269199&cr=7581406 ■ http://www.2 Cormen ■ Problems 1.

html 3. http://en.wikipedia. ■ http://www. http://en. Suggested readings a.topcoder. b.topcoder. Problems c.php/Category:Number_Theory Problems on Number Theory ■ http://www. JPIX on Spoj 4. http://www. Suggested problems a.spoj.wikipedia. Cormen appendix C (very basic) 2.2. Suggested problems ii. Bernoulli.topcoder.wikipedia. http://www. Concrete mathematics by Knuth 2. ii. Topcoder probabilty tutorial http://www.ams. http://www. Suggested reading a. http://en. Linear Algebra by Kenneth Hoffman Section 1.topcoder. Problems i. Probability.topcoder. Permutation Cycles.topcoder. http://en. Suggested problems a.7 b. http://acm. http://en. Linear Algebra by Kenneth Chapter 1 b. Group Theory. http://www.spoj.wikipedia.wikipedia.spoj. Matrix transformations [ Transpose. http://en.ams. burnsides lemma 1. Suggested problems 5.–exclusion_principle 4.topcoder. http://petr-mitrichev.9. Gauss Jordan Elimination] a. An introduction to probability theory and its applications m. b. b.aspx?space=1&num=1690 b. http://acm. http://www. Suggested problems a. http://uva. http://www. addition.html b. Suggested Problem a.4 Cormen ■ Random variables. http://www. Multiplication ( Strassen's algorithm ).org/wiki/Harmonic_series_(mathematics) d.appspot. http://www. http://www. http://www. http://www. Rotation of Matrix. Linear Algebra) ■ http://problemclassifier. ■ Advanced counting techniques . Linear Algebra By Kenneth Hoffman Section c. http://en. fibonnacci numbers a. http://en. http://www. Suggested Problems a. Cormen 28.1 2. c. ■ Special discrete and continuous probability distributions 1. Suggested reading i.Pigeon hole principle.wikipedia.'s_lemma b.topcoder. Suggested readings a. Sprague grundy theorem. Counting Syllabus ■ Basic principles .3. Problems i. bernoulli. Suggested problems b. harmonic. Suggested reading . Suggested readings a. http://www.topcoder.Polya counting. Addition and subtraction of matrices ■ Special numbers 1. Suggested readings a.html ■ Hackenbush Suggested problems d. Suggested Reading i.wikipedia. http://www.wikipedia. William Feller.2 ii.codechef. Generating . Syllabus ■ Basic probability and Conditional probability 1. normal distribution 2. 28. grundy numbers 2. 3. Suggested Reading Linear Algebra Syllabus ■ Matrix Operations 1.algorithmist.spoj.6 b. Rank and Inverse of Matrix [ Gaussean Elimination .org/wiki/Eulerian_numbers c. Cormen 28. b. Game theory Syllabus ■ Basic principles and Nim game 1.4. http://www. http://www. eurlerian. http://www.php?contest=0&problem=498 ■ Suggested Readings 1.blogspot. probability generating functions ■ Mathematical expectation + Linearity of expectation 1. Representing Linear transformations using matrix ] a. http://www.wikipedia. Suggested Reading c.topcoder. Game Theory. logarithmic exponentiation b.topcoder.wikipedia.jsp?search=number&usr= Math (Probability. b.1.topcoder. Determinant .topcoder. multiplication rules 1. http://en.html ■ Inclusion-exclusion 3. http://en.

topcoder. Problems a.spoj. http://www.spoj.topcoder. . Circular linked list / queue ■ Problems 1. https://www.spoj. https://www. Problems i.topcoder. Arrays/Stacks/Queues : ■ Problems 6. http://www. 3 ■ Problems ■ Reading: http://www.topcoder.topcoder. b.topcoder. Robert Sedgewick and Flajoulet's Combinatorial analysis 10. https://www. Mark Allen Weies Chapter 8 ii.spoj. Advanced a. i. Basic a.spoj.spoj. https://www. https://www. Mark Allen Weies Chapter 3 c. https://www. ROOTCIPH on Spoj 2. Suggested Reading i. Roots of a polynomial [ Prime factorization of a c=problem_statement&pm=7262.spoj. Hash Tables : ■ Problems 1.http://www. CLRS: section 10. Suggested Reading a.blogspot. http://petr-mitrichev. RABBIT1 .pl/problems/CHAIN/ ■ Reading: 1. ShuffleMethod.3 Cormen 2. https://www. Singly/Doubly Linked List : ■ Problems 1. Fenwick(Binary Indexed) trees ■ Problems 1. http://www. Hernstein's topics in algebra ■ Polynomials ■ Reading: 1. Problems i.topcoder. https://www. https://www.iii. Permutation and WordGame on topcoder.1 2.4 2. Problems ■ Reading: CLRS: section 10. https://www. Polias theorem 1. CLRS: Chapter 12 3. HIGH on Spoj f. f.spoj. http://www. http://www.spoj. Permutation cycles ■ Suggested Reading ii. Trie (Keyword tree) ■ Problems ■ Reading b. Linear Algebra by Kenneth Chapter 1 b. Data Structures. Group Theory ■ Bernside e. Binary/nary Trees ■ Reading 1. 2. https://www.topcoder. Mark Allen Weies Chapter 5 d.spoj. Art of Computer Programming by Knuth 2. http://www.html 2. https://www. Heaps ■ Problems 1. 7.topcoder. Problems i. 28. CLRS: section 10. All real roots of a polynomial ] b.spoj. Lagrange Interpolation e. REC. Eigen values and Eigen vectors a. Solving system of linear equations a.2. PLHOP on spoj ii. Mark Allen Weies Chapter 4 4. Integer roots of a 2.spoj. ■ Reading : Mark Allen Weies Chapter 6 ii. http://www. Problems i.topcoder. https://www. Interval trees / Segment Trees ■ Problems 1. https://www. Using matrix exponentiation to solve recurrences a. ■ Reading: CLRS: Chapter 14 (augmented DS) . http://www.topcoder. Disjoint data structures ■ Problems 3. Generating functions ■ Suggested Reading ■ Reading c. Suggested Reading i.spoj. ■ Reading: CLRS: Chapter 11. Herbert Wilf's generating functionology 2. Customized interval/segment trees (Augmented DS) ■ Problems 1. POLYEQ .pl/problems/HASHIT/ 2. ■ Reading http://www. 2. b.topcoder. TRANSP on spoj b. Range minimum Query(RMQ) ■ Problems d.

com/stat?c=problem_statement&pm=6464&rd=9994 6.spoj. SUDOKU. [intermediate]. AVL Trees ■ Problems 1. (Hint: Heaps) (Hint: Disjoint ) 7.g. Dancing Links and Algorithm X given by Knuth .com/stat?c=problem_statement&pm=3501&rd=6529 7. k-d Trees d. https://www. h. Miscellaneous (Not to be covered) a.topcoder. 3. NQUEEN on SPOJ ■ Suggested reading 1. a. 12. . Search Techniques/Bruteforce writing techniques/Randomized Exercices 1.[Beginner]. ■ Suggested Reading 1. http://www.[Beginner].pl/problems/HELPR2D2/ (Hint: Interval Trees) 3. 11.refer to the tutorial link in Suggested reading b. Skip List 9. Sudoku Problem 8. ■ poblems . ■ Suggested Reading 1. Regular Iteration to reach a fixed point [Advanced]. Refer the tutorial for more problems. Hill Climbing [Advanced] d. General programming issues in contests -> (Hint: Trie) ■ problems .[Beginner]. https://www. B/B+ Trees c. g. ■ Suggested Reading e. Binary Search .topcoder. ■ Iterations to solve linear non-homogeneous system of equations.codechef.zju. https://www.spoj. N queens problems 2. https://www. Randomized Algorithms [Intermediate]■ Quick-Sort. https://www. http://www. Tiling Problem.stanford. Knights Tour 3. Splay Trees http://www. https://www. Representing sets with bitmasks and manipulating bitmasks . http://www.gz c.spoj. ■ finding all real roots of a polynomial using binary search. http://acm. 5. http://www.topcoder. http://www. ■ problems -> 1. https://www.topcoder. Red-black Trees e. http://www.spoj. ■ problems 1. 15 puzzle. ■ problems 1.[Beginner]. https://www. Backtracking .do?problemCode=2868 f. Ternary Search .spoj. Arithmetic Precision .[Advanced] ■ problems .pl/problems/ORDERS/ ■ Reading iii. Binomial/ Fibonacci heaps (Hint: Heaps)t 2. Meet in the middle [Intermediate]. 2.[Intermediate].pl/problems/HEAPULM/ (Hint: Interval Trees) https://www. http://www.spoj.AGGRCOW on SPOJ. ■ Newton-Raphson method to find root of a mathematical function. 5.spoj.

Sign up to vote on this title
UsefulNot useful