Антти Лааксонен
Олимпиадное
программирование
Изучение и улучшение алгоритмов
на соревнованиях
2-е издание, обновленное и дополненное
Guide to Competitive
Programming
Learning and Improving Algorithms
Through Contests
Second Edition
Antti Laaksonen
Олимпиадное
программирование
Изучение и улучшение алгоритмов
на соревнованиях
2-е издание, обновленное и дополненное
Антти Лааксонен
Москва, 2020
УДК 004. 02: 004. 424
ББК 22. 18
Л12
Л12 Антти Лааксонен
Олимпиадное программирование. 2-е изд. , обновленное и дополнен-
ное / пер. с англ. А. А. Слинкин – М. : ДМК Пресс, 2020. – 328 с. : ил. ISBN 978-5-97060-878-4
Перед вами второе, обновленное издание книги, которая уже успела полю-
биться читателям. Автор подробно описывает, как проходят олимпиады по
программированию и как к ним готовиться, разбирает базовые темы, трюки и
алгоритмы. В новых разделах рассматриваются темы повышенного уровня: вы-
числение преобразования Фурье, нахождение потоков минимальной стоимости
в графах и использование конечных автоматов в задачах о строках. Спортивное программирование – самый перспективный интеллектуальный
вид спорта; уже сейчас им увлекаются лучшие умы планеты, и число участни-
ков растет год от года. Рост популярности олимпиадного программирования
положительно влияет на другие сферы жизнедеятельности человека. Навыки
быстрого решения сложнейших задач помогут сегодняшним студентам в буду-
щем эффективно справляться с реальными проблемами человечества. Издание будет полезно студентам факультетов информационных технологий
и участникам олимпиад по программированию. УДК 004. 02: 004. 424
ББК 22. 18
Original English language edition published by Springer International Publishing
AG. Copyright ©Springer International Publishing AG, part of Springer Nature 2020. All
rights reserved. This edition has been translated and published under licence from Springer
International Publishing AG. Russian-language edition copyright © 2020 by DMK Press. All
rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в
какой бы то ни было форме и какими бы то ни было средствами без письменного разре-
шения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероят-
ность технических ошибок все равно существует, издательство не может гарантировать
абсолютную точность и правильность приводимых сведений. В связи с этим издатель-
ство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-3-030-39357-1 (англ. ) © Springer Nature Switzerland AG, 2020
ISBN 978-5-97060-878-4 (рус. ) © Оформление, перевод на русский язык,
издание, ДМК Пресс, 2020
Оглавление
От автора ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 11
Вступительное слово Алексея Малеева, основателя Moscow Workshops ... ... ... ... . 11
Отзыв Дмитрия Гришина, основателя Mail. Ru Group... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 13
Благодарность от редакции ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 13
Отзыв Нияза Нигматуллина, двукратного чемпиона мира
ACM ICPC 2012 и 2013 годов ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 14
Предисловие ко второму изданию ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 15
Предисловие к первому изданию ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 16
Глава 1.