/eth-algolab

My solutions to the problems from the ETH course AlgoLab in 2020/2021

Primary LanguageC++MIT LicenseMIT

Algorithms Lab 2020

Alt text

This repository contains my solutions for the Algorithms Lab course at ETH Zurich (Fall 2020). The course focuses on competitive programming, as it requires the students to solve programming exercises in C++ under time constraints. Given the spirit of the course, some solutions might not follow coding's best practices.

A wide spectrum of topic is covered, including sliding window, dynamic programming, greedy strategies, and the use of libraries such as CGAL and BGL, to tackle flow, linear programming, graph and geometric tasks. All my solutions give 100 points on the judge.

Useful resources

General

  • Introduction to Algorithms, by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein.
  • LeetCode: great source to practice similar (but often simpler) problems.
  • VisuAlgo: interactive animations of some data structures and algorithms.
  • My algorithms repository provides a light introduction to the basic algorithms (essential, but often implemented in libraries for the purpose of this course).

Graph Algorithms

  • Boost Graph Library
  • Algorithms in C++, by Robert Sedgewick. The fifth volume is an excellent resource to master the basic graph algorithms.

Geometric Algorithms

  • See Chapter 3 here.
  • The slides here provide an excellent introduction to Delaunay triangulations.
  • The CGAL library has an excellent documentation and some good tutorials.

Linear Programming

  • See Chapter 4 here, especially the first sections for practical purposes.