Lecture slides and code

  1. Introduction (code)
    • 14/09/23: correct vjudge group link on slide 17
  2. Getting Started (code)
  3. Problem Solving Paradigms (code)
  4. Data Structures I (code)
    • 24/09/23: correction to ‘Largest Interval’ implementation re deletion from multiset, added range tree debug
    • 26/09/23: changes to ‘Area Under Histogram’, typos corrected
    • 14/10/23: minor correction on last slide, fixed query bounds
  5. Dynamic Programming (code)
    • 14/10/23: minor correction on slide 46, fixed function name
  6. Graph Algorithms (code)
    • 12/10/23: corrections to proof of Kosaraju’s algorithm
    • 23/11/23: corrected compile error in LCA code (naming conflict with log)
  7. Shortest Paths (code)
    • 14/10/23: minor correction on slide 26, outer loop 1-based (no practical effect, just semantic)
    • 14/10/23: significant corrections to solution of ‘Two Buttons’
  8. Revision (code)
  9. Data Structures II (code)
    • 30/10/23: small corrections, e.g. to recalculate() on slide 74
  10. Network Flow (code)
    • 03/11/23: corrected virtual to is_virtual on slide 42
    • 06/11/23: corrected min cut code on slide 42, and extensive changes from slide 83
    • 07/11/23: corrections to ‘Magic Hours’ on slides 77, 80 and 81
    • 11/11/23: corrections to ‘Image Segmentation’ on last three slides
  11. Mathematics (code)
    • 11/11/23: minor corrections to later slides
    • 15/11/23: clarifying comment on slide 46, fixed typo on slide 80
  12. Computational Geometry (code)
  13. Exam Revision (code)