Блог пользователя IOI2018

Автор IOI2018, история, 8 лет назад, По-русски

Подскажите что учить , какие темы , где материал брать , На каких сайтах итп :)

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

»
8 лет назад, # |
Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится

Основная идея подготовки к олимпиаде — прорешивать как можно больше задач, для того чтобы к олимпиаде "набрать оптимальную форму". По поводу тем для обучения — все зависит от уровня олимпиады.

Имхо, лучшие сайты (для меня по крайней мере) для прорешивания задач -

http://acmp.ru/ http://informatics.mccme.ru/ http://www.e-olimp.com/ ну и конечно же сам кодефорсес

Теорию для них можно брать с разных источников, начиная от разных видеоуроков до того же e-maxx'a например (http://e-maxx.ru/)

Этого хватит для ученических олимпиад, как по мне. Не стоит также забывать и про чтение различных книг как по алгоритмам так и по языку

»
8 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Прочитал как "Подскажите что учить, какие мемы" :) А если серьезно, то учить нужно для начала простенькое, а потом это закреплять. Из важных алгоритмов я бы отметил: стек, очередь, куча, сортировки (за квадрат: вставками, сортировка выбором, ну и оптимальные), префиксные суммы, дерево отрезков (можно без фенвика, т.к. дерево отрезков универсально), разряженную таблицу. Конечно еще желательно знать что-нибудь для графов, но это уже отдельная история. Задачки решать лучше 2 типов:

  1. Реализация с очевидной идеей;
  2. Идейная задача с легкой реализацией.

Первые научат тебя писать (и не путаться в переменных), а вторые научат придумывать идеи, методы решения задач. Для начала этого будет достаточно.

PS. codeforces.com, acmp.ru, e-olimp.com — хорошие сборники задач, а алгоритмы можно подсмотреть здесь: e-maxx.ru

  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится +15 Проголосовать: не нравится

    Я бы не стал человеку с одной решенной задачей за три контеста засорять мозги всякими деревьями отрезков и разреженными таблицами :)

    Тут, мне кажется, совет только один — практика на задачах своего уровня. Самый банальный (и действенный, как мне видится) вариант — это не разрываться между множеством сайтов, а прорешивать задачи не отходя от кф. Есть проблемы с задачей А див2 — прорешивай А див2. не получается решить — читаешь разбор, разбор не помог — читаешь чужие исходники. Теорию специально можно не учить. А вот как только столкнулся с задачей, которая не решается без нужного алгоритма, можно про него и почитать. При таком подходе не будет в голове бессмысленных и ненужных знаний алгоритмов, которых никогда не удастся применить :)

    А еще есть очень классное место, которое лишает тебя необходимости самостоятельно выбирать себе задачи для тренировок.