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.





com/stat?c=problem_statement&pm=10765&rd=14183 ■ ■ ■ e. GCD using euclidean method ■ Suggested Reading 1. 31. ■ ■ i. http://www. http://www.Dynamic Programming(DP) as a tabulation method ■ Cormen chapter on DP Standard problems (you should really feel comfortable with these types) ■ http://www. 31. 2.2 from Number Theory by SY Yan http://www. http://www. Integer Factorization ■ Naive O(sqrt(n)) method ■ Pollard Rho factorization ■ Suggested Reading 1. Project Euler 271 Fermat's theorem. DP on trees ■ http://www. Suggested Reading ■ Chapter on Greedy algorithms in Cormen. http://uva. Greedy. SOLSTRAS on SPOJ http://www. www. Number http://www. order .com/stat?c=problem_statement&pm=6408&rd=9826 A good collection of problems ■ http://codeforces.basic postulates [Including modular linear equations .php?section=problems&id=70 2. 31.topcoder.5 from Cormen 2. Wilson theorem ■ nCr % p in O(p) preprocess and O(log n ) query b.3 and 31.topcoder. Problems 1. 2.2 Cormen ■ Problems 1. f. http://projecteuler.php?section=problems&id=66 ■ http://problemclassifier.html c.6 from Number Theory by SY Yan ■ Problems d.4 from Cormen ■ ■ ■ ■ Problems 1.6 .6.topcoder.Fermat primality http://www. Solving in the reverse . primitive roots ) ■ Suggested Reading 1.Sieve of Erastothenes ■ Suggested Problems .pl/problems/NDIVPHI/ c. Logarithmic Exponentiation ■ Suggested Reading 1. DP with datastructures ■ http://www. Prime generation techniques . http://projecteuler.topcoder. 31. http://www. 1.topcoder.topcoder. Chapter 1 from Number Theory for Computing by SY Yan [ Recommended ] 2.easier characterizations looking from the end ■ http://www. Miller-Rabin Primality test 1. Chinese remainder theorem ■ Suggested Reading 1. Suggested Reading from Number Theory by SY Yan 2. Euler Totient theorem ( totient function. http://www. http://www. 31.topcoder.spoj. PON.jsp?search=dp&usr= ■ ■ h. Cormen 31. GCD on SPOJ 2. http://projecteuler. ■ http://www.php?section=problems&id=65 3.php?section=problems&id=64 ■ Counting/optimizing arrangements satisfying some specified properties ■ http://www.7 from Cormen ■ Problems b. 31.8 c. k.topcoder.refer to the topcoder ■ 3. http://www. http://www. PRIC. 2. e. 8.onlinejudge.topcoder. Stirling numbers j. Continued fraction and Pell's equation] ■ Suggested Reading .com/stat?c=problem_statement&pm=4481&rd=6538 http://www.appspot. Modulus arithmetic .topcoder.topcoder. g.topcoder.topcoder. Primality tests ■ Deterministic O(sqrt(n) ) approach ■ Probabilistic primality tests . Symmetric characterization of DP state ■ http://www.3 from Number Theory SY Yan 2. State space reduction ■ ■ ■ d. Suggested Reading .topcoder. DP on probability spaces ■ http://www.PRIME1 on SPOJ f. Lucas Theorem l. b.spoj. ■ Strategies and expected values ■ http://www. 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 ■ http://www. problems . http://projecteuler.topcoder.topcoder.9 Cormen ■ Problems http://www.

Suggested problems a.topcoder. Suggested Reading i. Problems i. Problems http://en.html b. Linear Algebra) a.wikipedia. Matrix transformations [ Transpose.2 ii.2.html ■ Inclusion-exclusion c. Linear Algebra by Kenneth Chapter 1 b. http://www. Suggested reading a.wikipedia. Problems i. Permutation Cycles. Suggested reading i.html 3. http://www. 5. b. Linear Algebra by Kenneth Hoffman Section 3.spoj. bernoulli.ams.–exclusion_principle b. Suggested readings a. b.sgu. normal distribution 2.topcoder. Suggested problems a.wikipedia. Counting Syllabus ■ Basic principles .wikipedia. Determinant . Suggested problems a.3.onlinejudge.php/Category:Number_Theory Problems on Number Theory ■ http://www. http://en. JPIX on Spoj c. Suggested Reading i. Generating functions. http://www.wikipedia. http://www.algorithmist. Representing Linear transformations using matrix ] a.jsp?search=number&usr= Math (Probability. http://en. http://www.html 2. Suggested reading . grundy numbers http://en. d. http://en. http://en. Syllabus ■ Basic probability and Conditional probability 1. http://www.aspx?space=1&num=1690 b.topcoder. Suggested readings a.blogspot. Linear Algebra Syllabus ■ Matrix Operations's_lemma b. Suggested Problem ■ Hackenbush ii.appspot.ams. Bernoulli.Stirling. Counting. http://www.codechef. Poisson. Suggested problems a. http://www. ■ Special numbers 1. d. Cormen 28. multiplication rules 3. http://en. http://www.wikipedia.1 2.topcoder. Rotation of Matrix. http://petr-mitrichev. burnsides lemma 1. Group Theory.timus. Game theory Syllabus ■ Basic principles and Nim game 2. probability generating functions ■ Mathematical expectation + Linearity of expectation 1. Gauss Jordan Elimination] a.topcoder.4 Cormen ■ Random variables. William b.topcoder. Suggested Reading i.maa. http://www. Cormen 28. Rank and Inverse of Matrix [ Gaussean Elimination . f. http://www. Suggested Problems a. ■ Special discrete and continuous probability distributions 1.Pigeon hole c. http://www. Multiplication ( Strassen's algorithm ). eurlerian. Game Theory. ■ http://www. http://en.wikipedia. http://www. Suggested readings a. harmonic.wikipedia. Suggested problems a.spoj. Suggested problems a. http://www.3.6 b. Cormen appendix C (very basic) 2. http://en.topcoder.php?contest=0&problem=498 ■ Suggested Readings 1. d. Addition and subtraction of matrices Probability. http://www.wikipedia. An introduction to probability theory and its applications b.spoj. Suggested readings 3. e.topcoder. Topcoder probabilty tutorial http://www.7 d.php/Category:Number_Theory ■ ■ Advanced counting techniques . http://www. Sprague grundy c. b. b. http://uva.topcoder.caltech. http://www. http://www. Linear Algebra By Kenneth Hoffman Section 3. logarithmic exponentiation a. http://www.topcoder. Concrete mathematics by Knuth 2.topcoder. Suggested problems a. fibonnacci numbers a. ii. ROOTCIPH on Spoj 2. Circular linked list / queue ■ Problems f. Singly/Doubly Linked List : ■ Problems Solving system of linear equations a. Robert Sedgewick and Flajoulet's Combinatorial analysis 10. Permutation and WordGame on topcoder. RABBIT1 .com/stat?c=problem_statement&pm=2423&rd=4780 ■ Polynomials 2.html 2. Heaps ■ Problems 1.topcoder. i. Using matrix exponentiation to solve recurrences a.spoj. Art of Computer Programming by Knuth Vol. Mark Allen Weies Chapter 8 e. Problems i.topcoder.topcoder. Generating functions ■ Suggested Reading 1. POLYEQ .com/tc?module=Static&d1=features&d2=010408 b. https://www. 2.iii. HIGH on Spoj 5.topcoder. Mark Allen Weies Chapter 5 ■ Reading 2. https://www. https://www.spoj.topcoder. f. CLRS: section 10. Permutation cycles ■ Suggested Reading d. PLHOP on spoj ii. Mark Allen Weies Chapter 4 4.1 2. Eigen values and Eigen vectors a. Group Theory ■ Bernside Lemma. CLRS: section 10.blogspot. http://www. All real roots of a polynomial ] a. Problems i. 2. http://www. http://www. Binary/nary Trees ■ Reading 1. Customized interval/segment trees (Augmented DS) ■ Problems 1.2. 3 ■ Problems 1. Linear Algebra by Kenneth Chapter 1 b. http://www. Problems ■ Reading : Mark Allen Weies Chapter 6 ■ Reading c. http://www. https://www. https://www. ■ Reading: http://www.spoj. Trie (Keyword tree) ■ Problems 1. . Hash Tables : ■ Problems 1. http://www. http://petr-mitrichev.http://www.spoj. https://www. http://www. https://www. http://www. TRANSP on spoj b. Herbert Wilf's generating functionology 2. ShuffleMethod.topcoder. 28.spoj.spoj.spoj.spoj. ■ Reading: 1.topcoder. http://www. Data Structures. Disjoint data structures ■ Problems 1. Polias theorem 1. CLRS: Chapter 12 3. Roots of a polynomial [ Prime factorization of a polynomial.topcoder. Hernstein's topics in algebra c=problem_statement&pm=7262. Integer roots of a polynomial. https://www. Lagrange Interpolation a. 3. Problems i.spoj. Interval trees / Segment Trees ■ Problems ii. ■ Reading: CLRS: Chapter 14 (augmented DS) . https://www.3 Cormen 2. Basic ■ Reading iv. Suggested Reading i.4 ■ Reading: CLRS: section 10. http://www.spoj. https://www. f. Suggested Reading 2. REC.spoj. Advanced a. Problems a.topcoder. Suggested Reading a. 7. Arrays/Stacks/Queues : ■ Problems 1. https://www.spoj. Mark Allen Weies Chapter 3 c.spoj.spoj. Fenwick(Binary Indexed) trees ■ Problems ■ Reading: 1. Range minimum Query(RMQ) ■ Problems ■ Reading: CLRS: Chapter b. https://www.topcoder. Problems i.

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

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.