Αλγόριθμοι

Algorithmic strategies
Math Algorithms
Graph Algorithms
DP Algorithms
  • Max Sum 1D/2D
  • Kadane's Algorithm
  • Longest Increasing Subsequence (LIS)
  • Longest Common Subsequence (LCS)
  • Knapsack/Subset Sum
  • Memoization
  • DP with DAG
  • DP on Tree
  • DP Optimization Techniques
Data Structures
  • Binary heap data structures
  • Representation of disjoint sets: the Union-Find data structure
  • Binary index trees
  • Segment trees
  • Balanced binary search trees
  • Augmented binary search trees
  • Lowest common ancestor
  • Creating persistent data structures by path copying or using fat nodes
  • Composition of data structures (2-D statically balanced binary trees)
  • Heavy-light decomposition and separator structures for static trees
  • Data structures for dynamically changing trees and their use in graph algorithms
String Algorithms
  • Knuth-Morris-Pratt (KMP)
  • Rabin-Karp hashing
  • Suffix arrays/tree
  • Suffix automaton
  • Aho-Corasick
Computational Geometry
  • Geometry Basics (area, perimeter, Euclidean distance, Trigonometry)
  • Line Segment Intersection
  • Testing if a Polygon is Convex
  • Testing if a Point is Inside a Polygon
  • Cutting a (Convex) Polygon with a Straight Line
  • Graham Scan (Convex Hull)
  • Triangulation