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

Автор Luckwet, история, 9 часов назад, По-русски

Недавно изучил бинарный поиск и научился применять его в тривиальных задачах, но решил отработать на практике бинпоиск по ответу. В поиске по тегам на сайте выбрал "бинарный поиск", открываю первую попавшуюся задачу: задача1 и просто не понимаю, под каким градусом нужно развернуться, чтобы применить тут бинпоиск. Настоящее решение задачи это в худшем случае O(N), где N — длина наименьшей строки. Бинпоиском это решение можно разве что усложнить и запутать. Решение в этом случае буквально выглядит так: ~~~~~ int l = .., r = ... while (l < r) { ...Нормальное решение, которое было без бинпоиска... } ~~~~~

Хорошо допустим просто одна такая задача попалась. Но я открываю следующую задачу: задача2 История повторяется. Могу привести ещё десятки подобных задач, в которых бинпоиск это не просто один из ответов, а цикл while, наложенный на другой ответ.

Конечно, мы ведь можем решить это именно так, согласен. Но если так рассуждать, то A + B тоже можно решить этим алгоритмом. Хороший набор задач, где без двоичного поиска на самом деле приходится туго, есть на сайте informatics, но задач там крайне мало и хотелось бы найти такого рода задачи на этом сайте, при этом не тратя лишнее время на осознание, что бинпоиском решать эту задачу это как из пушки стрелять по воробьям.

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

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

Теги видимо ставят ±рандомно, чтобы не выдать идею решения.

Мне вот эта например понравилась: https://codeforces.net/contest/1486/problem/D