В копилку для интересующихся - книга введение в спортивное (соревновательное) программирование и алгоритмы. Не новая (2018 год) но кажется довольно содержательная. Книга последовательно покрывает ключевые темы алгоритмов и структур данных: • базовые техники: перебор, жадные алгоритмы, «двух указателей», meet-in-the-middle • динамическое программирование (классические и продвинутые задачи) • структуры данных: сегментные деревья, BIT, хеширование, tries • графы: обходы, кратчайшие пути, потоки, паросочетания • теория чисел и комбинаторика • строковые алгоритмы (Z-алгоритм, хеши и др.) • теория игр (включая теорему Шпрага–Гранди) • вероятностные методы, рандомизированные алгоритмы • основы вычислительной геометрии