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

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

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

Решение:

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

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

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

где ошибка?

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

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

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

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