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.





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

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

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

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

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master Your Semester with a Special Offer from Scribd & The New York Times

Cancel anytime.