Динамика и Лис


опубликовано на 25 Март 2026, 5:50 п.п.

Лисы тут не причем!

На эту неделю у нас практика к теории «Наибольшая возрастающая подпоследовательность».

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

Теория:

Практика к теме:

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

Во время решения полезно обращать внимание на несколько вещей:

  • что именно нужно искать: непрерывный участок, подпоследовательность или более общую структуру;
  • какое состояние удобно хранить в динамике;
  • когда достаточно решения за O(n^2), а когда уже стоит думать про ускорение;
  • как меняется задача, если нужно найти не только длину, но и восстановить ответ или обработать более сложные ограничения.

Рекомендую идти так: сначала внимательно прочитать теорию, затем попробовать самостоятельно определить, какие из задач решаются через базовую динамику, а где уже проявляются идеи, близкие к классической LIS. Даже если решение не находится сразу, полезно хотя бы выписать, что будет означать dp[i] и откуда может получаться переход.

Такие задачи особенно полезны тем, что учат видеть не только готовую формулу, но и саму структуру решения. Именно на этой теме часто появляется понимание, как из перебора всех вариантов рождается полноценная динамика.

Удачи в решении!

Жду ваши результаты, вопросы и впечатления от задач.


Комментарии

Еще нет ни одного комментария.