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

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

Всем привет! Я решал задачу 825F - String Compression, отослал решение, но сразу же захотел отослать немного другое решение где я убрал else

Т.Е. в первом решении лишь иногда выполнялась 60 строка, а во втором она выполнялась всегда. В итоге не зашло именно 1 решение!!! ТЛ 23, а второе зашло 1933мс из 2с. Я подумал что это просто баг серверов и отослал оба решения еще раз, но все так и осталось (первая задача ТЛ, а вторая уже 1918мс)

Первая попытка 58855834 ТЛ 23

Вторая попытка 58855845 AC

я считаю что 100+ мс это относительно много, неужели else на самом деле может замедлить решение?

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

»
5 лет назад, # |
Rev. 4   Проголосовать: нравится 0 Проголосовать: не нравится

А почему ему не замедлить? Процессору на вычисление ветки ресурсы пришлось тратить. Только ваше решение замедляется ещё больше из-за вычисления функции f, которое приводит к тройному циклу и пограничному времени. Поменял в вашем коде способ вычисления f, получил ускорение в 2 раза Тыц — 967 мс Вот ваш код с else Тыц2 — 1029 мс

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

    Ну соптимайзить время можно было многими способами) к примеру убрать define int long long, даже если эта та самая "Процессора на вычисление ветки ресурсы", не слишком ли много? 100+ мс просто если написать else где это необязательно.. Никогда бы не подумал что такое может быть