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

Автор snarknews, история, 4 года назад, По-русски

3 января 2019 в 20:20 (время московское) стартовал первый этап SnarkNews Winter Series 2020. Как и несколько предыдущих серий, SNWS-2020 пройдёт на системе Яндекс.Контест. Опубликовано расписание серии.

По просьбам участников отдельно публикую ссылку на вход в первый раунд. Здесь же по окончании раунда в соответствии с расписанием можно будет обсудить задачи первого раунда.

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

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

А в чем идея Е в итоге? Я в дорешку сдал d&c оптимизацию без доказательства, но после стресса стало очевидно, что она не работает) Нормально тогда в такой задаче иметь 7 тестов без мультитеста?)

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

    В е лешко заметить, что lca куска определяют какие-то не более 2 подряд идущих вершин

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

      Как это помогает?

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

        Ну мне кажется, что это решающее наблюдение. Можно назвать идеей Е

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

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

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

        Ок, я неправльно понял твой коммент

        После этого давай найдем K отрезков длины не больше двух, таких, что сумма lca на отрезке минимальная (остальные вершины можно добавить к любому из соседних отрезков не ухудшив ответ)

        Получаем динамику d(i, j) — сколько стоит выбрать j таких отрезков на первых i вершинах перестановки, с переходами d(i, j) = min(d(i, j), d(i — 1, j)); d(i, j + 1) = min(d(i, j + 1), d(i — 1, j) + level(p[i])) и d(i, j + 1) = min(d(i, j + 1), d(i — 2, j) + level(lca(p[i], p[i — 1])))

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

          А что, если в оптимальном ответе получились, например, только единичные отрезки, их же вроде как нельзя так просто расширить как отрезки с двумя элементами?

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

            Почему? Ответ от расширения отрезка никогда не увеличивается

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

    На самом деле d&c должна работать, и это следует из нормального решения (точка оптимума либо остается прежней, либо становится последней возможной).

    Но это все, конечно, только если отдельно обработать единичные отрезки.