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

Автор BekzhanKassenov, 11 лет назад, По-русски

22 июня в 11.00 по Московскому времени состоится Открытое личное первенство УрФУ 2013.

Соревнование будет проводится на тимусессылка на контест. Посмотреть время начала в вашем часовом поясе можно здесь.

Предлагаю после контеста обсудить здесь задачи.

P.S гет удался!

UPD: До начала контеста осталось всего несколько часов!

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

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

В чем можно накосячить в задаче H? У меня стабильно WA 5, так и не смог затестить.

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

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

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

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

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

      Понятно, спасибо. Представлял использование крутых комбинаторных формул.

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

Решившие задачу Е, какой алгоритм вы придумали? Если выбирать одну из наибольших возрастающих (убывающих) последовательностей, а пытаться остальные элементы добавить во вторую, то легко построить контрпример.

5 1 2 6 4 7 8 3

5 1 2 6 4 7 8 3

Первая последовательность не даёт возможности построить ответ, а вторая — даёт.

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

    Я делал аналогично, только брал наибольшую возрастающую/убывающую последовательности, заканчивающиеся на последнем элементе массива. И мое решение выдает неверный ответ на ваш тест(

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

      Тогда добавим в начало условный 0, а в конец 9. Получим:

      0 5 1 2 6 4 7 8 3 9

      UPD: я так и не понял из Вашего поста, кто кого валит, поэтому решил развить мысль с контрпримером.

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

        Извиняюсь за непонятное написание) Мое решение выдает "Fail" на вашем тесте.

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

    Случай, когда обе подпоследовательности растут одинаково решается простым жадником.

    Для случая разного роста решающим является следующее наблюдение. Рассмотрим, где в перестановке находится 1. Ясно, что она либо начало возрастающей подпоследовательности и тогда всё до нее должно убывать и быть началом убывающей подпоследовательности, либо она конец убывающей подпоследовательности и тогда всё после неё должно возрастать и быть концом возрастающей. Если выполнены оба эти условия, то построение очевидно: префикс до 1 — убывающий, суффикс, начиная с 1, — возрастающий. Иначе выполнен один из случаев и мы однозначно восстанавливаем какие-то куски наших подпоследовательностей и переходим либо к префиксу, либо к суффиксу перестановки.

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

    Там, конечно, нужно аккуратно все закодить, но в итоге получается довольно простое линейное решение (дерево отрезков для минимума не нужно, для проверки на убывание и возрастание префиксов и суффиксов делается простая линейная ДП-шка).

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

    Для возрастающей и убывающей последовательности можно придумать ДП. dp1[i] — минимальный конец возрастающей подпоследовательности в префиксе до i — го элемента при условии, что i — й элемент попал в убывающую, и dp2[i] — максимальный конец убывающей подпоследовательности в том же префиксе при условии, что i — й элемент попал в возрастающую. Пересчитывается за O(1).

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

Look what I have written 10 months ago :) (4000*2 = 8000) ?