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

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

Здраствуйте, подскажите пожалуйста как можно решить задачи 322. The Great Union и задачу 325. Palindrome.
Заранее спасибо).

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

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

На 325 у меня есть довольно мутная идея...

Идея такая: разобьем буквы на "левые" и "правые" ("центральную" игнорируем). На каждом шаге мы должны выбрать, какие буквы мы поставим на края палиндрома. Очевидно, из одинаковых букв мы будем выбирать самую левую для "левой" буквы и самую правую для "правой". Выбирать будем жадно, оптимизируя следующую функцию: количество свапов для "левой" буквы минус количество "левых" букв справа от нее плюс количество свапов для "правой" буквы минус количество "правых" букв слева от нее.

P.S. Решение я еще не написал, но у меня в голове есть набросок доказательства.

**UPD.** Вопрос к знающим: как реализовать вышеописанную байду без применения дерамиды / дерева отрезков / вообще каких-либо деревьев? Уже реализовал.

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

    мхм )) я идею вроде твоего пробовала, но ВА8. возможно я где-то в коде ошибься. СПАСИБО огромное )

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

      Решение по описанию выше с Фенвиком и одной хитрой оптимизацией зашло за 887мс.

      UPD. Без Фенвика — 676мс.

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

322 казалось бы просто реализация. Находим дорогу, которой нет в первой стране, но есть во второй. Добавляем ее в первую страну. В результате получается цикл. В нем точно есть дорога, которой нет во второй стране. Удаляем ее. Так до тех пор, пока деревья не совпадут.

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

    Ой да вроде очевидно ) огромное спасибо

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

В палиндроме жадность + фенвик же. http://pastie.org/4395924 мой старый код

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

sf