Скиены и Мигеля А. Ревиллы «Олимпиадные задачи по программированию», которую следует рассматривать как руководство по тренировке перед соревнованиями. Приведенные в ней задачи соответствуют уровню АСМ (Международной студенческой олимпиады по программированию), на которой в последнее десятилетие успешно выступают российские команды из университетов Москвы и С.-Петербурга, а также из других городов, например из Ижевска, Саратова и Бийска.

Книга Скиены и Ревиллы поможет и преподавателям курсов по изучению алгоритмов, ориентированных на программирование, при факультативной подготовке участников таких соревнований, как, в частности, ACM. Она способна заинтересовать преподавателей, тренеров команд программистов и учащихся, входящих в их состав. В помощь им, помимо всего прочего, предлагаются автоматические тестирующие системы, развернутые в ряде университетов по миру.

Кроме того, издание позволяет обеспечить взаимодействие с сайтами http://www.programming-challenges.com/ и http://online-judge.uva.es/ для проверки через Сеть решений задач, получения соответствующих кодов и записи лекций, дополняющих материал книги. Кстати, задачи можно проверить, применив тестирующую систему Unversidad de Valladolid. Все приведенные в книге примеры имеют единые идентификационные номера, благодаря которым легко будет сориентироваться на вышеприведенных сайтах.

Данное издание содержит 14 глав, одно приложение и послесловие, где даются историческая справка об олимпиадном движении и список рекомендуемой литературы, но, к сожалению, практически вся она не переведена на русский язык. Главы, в свою очередь, состоят из основного материала, подсказок и замечаний. Первая из них, под названием «Начало работы», дает представление о том, как пользоваться автоматической тестирующей системой (robot judge), как выбирать «оружие», т.е. язык программирования и способ чтения программ, как осуществлять стандартные ввод-вывод. В ней также даны советы по программированию, рассказано об элементарных типах данных и на примере нескольких задач показано, как они оцениваются при тестировании.

Три главы посвящены структурам данных, причем отдельно строкам и проблемам сортировки. Они включают описание основных элементарных структур и объектных библиотек для языков Си++ и Java. Приводятся примеры разработки одной программы, строковый ввод-вывод и несколько задач. Что касается работы со строками данных, то уделено внимание кодам символов, представлению строк и другим вопросам, к примеру поиску шаблонов, управлению обработкой строк, организации завершения программы, а также функциям библиотеки для работы со строками. Отдельная глава выделена для приложений, алгоритмов и функций библиотеки сортировки.

В главах с 5-й по 14-ю приведены задачи, составление алгоритмов для которых требует знаний различных разделов математики: арифметики, алгебры, комбинаторики, теории чисел и графов, динамического программирования, классической и вычислительной геометрии.

Полагаю, что книга Скиены и Ревиллы будет полезна широкому кругу читателей не только потому, что в ней приведен значительный по объему материал, но и потому, что он подан на достаточно высоком методическом уровне.


Олимпиадные задачи по программированию. Руководство по подготовке к соревнованиям
Авторы: С.С.Скиена, М.А. Ревилла
Переплет: мягкий
Объем: 416 с.
ISBN 5-9579-0082-6 (рус.)
Дата выхода: 2005 г.
Издательство: М.: КУДИЦ-ОБРАЗ