Блог пользователя goo.gl_SsAhv

Автор goo.gl_SsAhv, 13 лет назад, По-русски

Люди, объсните мне кто-нибудь чем неверно мое решение 500-ки.

Решение:

Считаем хеши для всех подстрок, в мапе отмечаем сколько раз каждая подстрока встречается.

Затем все количества кидаем в отдельный массив и строим дерево хаффмана стандартным алгоритмом с кучей - достаем из кучи два элемента(самых маленьких), объединяем их, и кладём этот элемент снова в кучу. моё решение для теста "abbac" даёт ответ 3.4, авторское решение даёт ответ 3.6666

либо мое решение лучше чем авторское, либо оно неверно.

где ошибка?

UPD: Естественно хеши не прямо для подстрок считаю, а так чтобы строки-анаграммы имели одинаковый хеш.  

UPD2: Ага, понял за что минуса, в посте скиданова спойлится хаффман, но я только сейчас дорешивал, и пост прочел только сейчас. Кстати, мне хаффман почти сразу вспомнился.

Теги tco
  • Проголосовать: нравится
  • -2
  • Проголосовать: не нравится

13 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
А ты понял, что например в тесте твоем шанс на b в два раза выше, чем шанс на c?
В остальном решение правильное, так что если это ты учитываешь, то где-то ошибка в коде.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Почему это строки-анаграммы должны иметь одинаковый хеш? оО