[Як підготуватися]
Це відправна точка, а не курс. Нижче — порядок, у якому до цього беруться, і місця, куди йти далі. Усе, на що воно посилається, уже є на цьому сайті або поруч із ним.
Мова програмування
Візьміть одну мову й доведіть її до вільного володіння. Дві погано — це гірше, ніж одна добре.
C++ — мова міжнародних олімпіад. На Міжнародній олімпіаді з інформатики вона єдина підтримувана, тож той, хто йде туди, рано чи пізно на неї переходить. Python легший на старті й цілком годиться, щоб навчитися думати алгоритмічно, але на складних задачах упирається у власну швидкість.
Якщо ви тільки починаєте — беріть будь-яку з двох і не витрачайте тижні на вибір. Якщо ви вже націлені на міжнародні олімпіади — беріть C++.
Алгоритми, приблизно в такому порядку
Мова дає змогу записати розв’язок. Знайти його дають алгоритми, і саме на них витрачається більшість часу.
- Синтаксис, типи, цикли, функції, введення й виведення
- Масиви й рядки; стек і черга
- Сортування та бінарний пошук
- Повний перебір і жадібні алгоритми
- Динамічне програмування
- Графи: обходи, найкоротші шляхи
- Далі — дерева відрізків, теорія чисел, геометрія
Перші чотири пункти закривають більшу частину шкільного етапу. Динамічне програмування — перевал, на якому спиняється найбільше людей, і єдиний спосіб його пройти — задачі, а не читання про нього.
Де брати задачі
Задачі минулих років уже зібрані, і шукати їх не треба.
Українські олімпіади — на uoi.eolymp.space: всеукраїнська олімпіада та юніорська і дівоча, з умовами та автоматичною перевіркою розв’язків.
Міжнародні — на eolymp.com, кожна олімпіада окремою серією. Найкоротший шлях до потрібної — сторінка самої олімпіади в розділі Олімпіади: посилання [Завдання] там веде просто в її архів.
Для щоденного тренування є Задачі — простір, де розв’язують поза прив’язкою до конкретної олімпіади.
Розв’язуйте задачі, які ви ще не вмієте розв’язувати. Година над однією такою вартує дня над десятьма знайомими.
Що читати
cp-algorithms — довідник з алгоритмів олімпіадного програмування, українською та англійською. Найкоротший шлях від назви алгоритму до робочої реалізації.
«Вступ до алгоритмів» — підручник, а не довідник: його читають підряд, коли хочеться зрозуміти, чому алгоритм працює, а не лише як його написати.
З ким
Самотужки можна дійти далеко, але повільніше. Табори — це кілька тижнів на рік серед людей, які роблять те саме, і викладачів, які вже пройшли цей шлях. Тренер пришвидшує ще сильніше: він бачить, на чому ви застрягли, раніше за вас.
Якщо щось із цього незрозуміло, почніть із типових запитань — там пояснено, які олімпіади бувають і як на них потрапити.