Sunday, August 4, 2013

Training path for Competitive Programming

Training path

We want to establish a knowledge base of unprecedented! We want this page to contain a more complete list of what needs to know an Olympic success. helps us and you!
Another list http://www.scribd.com/doc/58361421/Programming-Camp-Syllabus

Data Structures

Algorithms and programming techniques

Mathematics

Geometry

Computer Graphics FAQ
courses after Computational Geometry: Algorithms and Applications, Mark de Berg, M. van Krefeld, M. Overmars, O. Schwarzkopf
  • Intersection of two segments
  • The closest points of the plan
  • Point inside a polygon
    • http://geometryalgorithms.com/Archive/algorithm_0103/algorithm_0103.htm
    • http://tog.acm.org/editors/erich/ptinpoly/
  • Point in convex polygon in O (log n)
    • http://geometryalgorithms.com/Archive/algorithm_0103/algorithm_0103.htm # Monotone% 20Polygons
  • Pick's Theorem
  • The area of ​​a polygon
  • Center of gravity of a polygon
  • Polygon triangulation in O (n ^ 2)
  • Intersection of two circles
  • Minimal enclosing circle
  • Convex hull
    • Educational Application Archive
    • http://www.algorithmist.com/index.php/Monotone_Chain_Convex_Hull
    • http://en.wikipedia.org/wiki/Gift_wrapping_algorithm
    • Application - onion peeling in O (n 2)
  • Swing vertical / radial
    • radial sweep
      • Given a set S of n points in the plane. Determine the fixed circle of radius R that covers as many points of S. O (n ^ 2 log n)
      • Given a set S of n points in the plane. To find a line that passes through the maximal number of points in S. O (n 2) with hashuri angles for O (n ^ 2 log n) with radial scanning.
      • Given a set S of n segments in the plan. To find a line that intersects the maximum number of segments in S. O (n ^ 2 log n) with radial scanning.
      • Building visibility graphics.
  • Rotating calipers
  • Intersection of convex polygons
  • Intersection of half-planes (without dualization)
  • Dualize

Sorting and searching

Greedy

Dynamic programming

Graphs

  • Shortest paths
    • Dijkstra (with Heaps, with links set with IS NOT sites, with tail as TC - Cosmin know)
    • Dijkstra low costs ;) how to use the issue of car
    • A * has a lot of intuitive appeal for me. If you compare Dijkstra's round. A *, Dijkstra's is like a puddle of water flooding outwards on a flat floor, Whereas A * is expanding like the same puddle on the floor Toward bumpy and graded to drain (the target node) at the Lowest point in the floor. INSTEAD of spreading out evenly on all sides, the water seeks the path of Least Resistance, only trying new paths When Something Gets In its way. The heuristic function is what provides the 'degree' of the hypothetical floor.
      • A * is used a lot in the game industry, being a very fast algorithm in practice. An example where it is used is the strategy game Starcraft.
    • Floyd-Warshall
    • Bellman-Ford
  • Flow
  • Trees
  • APM
    • First
    • Kruskal
    • The second APM
    • APM in directed graph
    • Kirchhoff's matrix tree theorem
  • For bipartite graphs: maximum coupling , minimal support, plenty maximum independence
  • LCA , RMQ , Level Ancestor, Tree decompositions
  • Coloring of edges, complete graphic / bipartite / some (Vizing's theorem)
  • Planar Graphs
  • Graphs tour / Hamiltonian cycle
  • Implication graph and 2-SAT

Strings

Formal languages ​​and finite automata

Game Theory

Various

STL (Standard Template Library)

  • vector, deque, stack, list
  • string
  • set, map, hash_map
  • peer
  • sort
  • priority_queue
  • bitset
  • iterators

Searches

  • backtracking
  • iterative deepening
  • branch and bound

Optimizations

Working with memory

Bulan

  • Randomization (2 to 8, k-opt)
  • Constants
  • Interpolation Taylor / Gauss polynomial formula

Smenuri

Useful Books

  • Ioan Tomescu
    • "Problems of Combinatorics and Graph Theory" (which was given to ONI or batch almost every year about a problem or more)
    • "Combinatorics and Graph Theory"
  • John Cuculescu
    • "International Mathematical Olympiad of Students'
  • EA Morozova, IS Petracov, VA Skvortova
    • "International Mathematics Olympiad"
  • "Mathematical Problems KVANT translated from Soviet magazine"
  • AM Iaglom, IM Iaglom
    • "Basic Problems treated neelementare"
  • Thomas H. Cormen, Charles E. Leiserson, Ronald R. Rivest
  • DE Knuth
    • "The Art of Computer Programming" ("The Art of Computer Programming")
    • "Concrete Mathematics"
  • Jon Bentley
    • "Programming Pearls"
  • Steven Skien
    • "The Algorithm Design Manual"
  • M. Crochemore and W. Rytter
  • Mark de Berg
    • "Computational geometry"
  • Emanuela Cerchez and Marinel Serban
    • "Programming in C / C + + for high volume 1,2,3"

2 comments:

  1. Hi! Great resource list,

    A good place for learning dynamic programming is this problem/solution site with some great explanations:

    http://people.csail.mit.edu/bdean/6.046/dp/

    ReplyDelete