Lecture slides and code
- Introduction (code)
- 14/09/23: correct vjudge group link on slide 17
- Getting Started (code)
- Problem Solving Paradigms (code)
- 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
- Dynamic Programming (code)
- 14/10/23: minor correction on slide 46, fixed function name
- 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
)
- 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’
- Revision (code)
- Data Structures II (code)
- 30/10/23: small corrections, e.g. to
recalculate()
on slide 74
- 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
- Mathematics (code)
- 11/11/23: minor corrections to later slides
- 15/11/23: clarifying comment on slide 46, fixed typo on slide 80
- Computational Geometry (code)
- Exam Revision (code)