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

Автор MisterGir, 16 месяцев назад, По-русски

Этот контест тык Спасибо пользователям codeforces за тестирования раунда . Авторские решения + маленький разбор

A тык

B тык

C тык

D тык

E тык

F1 тык

F2 тык

G тык

I тык

Спасибо за коментарии

I_Love_Diar_Narumov

PovelItel_SkeLetoV2001

Abracadaber

ibrosh

mily

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

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

UwU

Жаль блог о контесте набрал минусовой вклад

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

F2 странные ограничения. Приведу свое решение, которое вроде зашло, но ИМХО легче:

Найдем длину максимального палиндрома, предварительно насчитав dp[l][r] — длина макс.палиндрома на промежутке $$$[l;r]$$$. Теперь найдем ответ для минимума за $$$O(n^2*c)$$$ (для максимума похожий алгоритм). Будем поддерживать $$$[ans_l;ans_r]$$$ и еще сколько нам осталось найти букв палиндрома ($$$len$$$), зная что ответ хранится в нем. Если $$$len = 0$$$ можно выйти из алгоритма. Будем перебирать буквы по возрастанию, так как нам нужно найти минимальный лексикографически палиндром. Если кол-во вхождений буквы меньше 2-х, то перебираем дальше. Иначе найдем самое левое и самое правое вхождение этой буквы, обозначим за $$$l_c$$$ и $$$r_c$$$. Если $$$dp[l_c][r_c]<len$$$, то также скипаем. Иначе обновляем $$$l:=l_c+1$$$, $$$r:=r_c-1$$$, $$$len:=len-2;$$$.

И еще немного обработки случаев для палиндромов нечетной длины.

посылка.

код еще оптимайзить и оптимайзить.

UPD: если предподсчитать за $$$O(c*n)$$$ $$$next_c[i]$$$ и $$$last_c[i]$$$, которые показывают ближайшую следующую/предыдущую соответсвенно позицию буквы $$$c$$$, асимптотика непосредственного вычисления ответа снижается до $$$O(n*c)$$$, и у нас остается только динамика за квадрат, которая на самом деле не 10^4 * 10^4 = 10^8, а 10^4 * (10^4 -1)/2 ~= 5*10^7 операций, т.к. это заходит за 500мс, много вопросов к тестам. А так идея контеста интересна

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

Я туплю немного

А такая нечитаемость условий задумывалась?

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

не дерево фенрика, а дерево фенвика)

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

    Я привык говорить дерево фенрика. Спасибо за исправления