![]() |
Задача 400. Префиксный кодпостоянный адрес задачи: http://www.diofant.ru/problem/1800/показать код для вставки на свой сайт >> |
Задачу решили:
3
всего попыток:
18
поделиться задачей:
|
|
Задача опубликована:
16.05.11 08:00
Прислал:
admin
![]()
Источник:
Проект "Эйлер" (http://projecteuler.net)
Вес:
1
сложность:
1
![]()
класс:
11 и старше
![]()
баллы: 100
Темы:
арифметика
![]() |
|
Пусть A и B - битовые последовательности, составленные из нулей и единиц.
Если A состоит из k битов и совпадает с отрезком длиной k, с которого начинается B (k левых битов), то A называют префиксом B.
Например, 00110 является префиксом последовательности 001101001, но не является префиксом последовательностей 00111 и 100110.
Префиксным кодом длины n будем называть набор из n битовых последовательностей, ни одна из которых них не является префиксом другой.
Вот, например, префиксный код длины 6:
00, 010,011,100,101,1111
Теперь предположим, что затраты на передачу нуля составляют 1 копейку, а затраты на передачу единицы - 4 копейки. Тогда стоимость вышеприведенного кода составит 2+6+9+6+9+16=48 копеек. Это далеко не самый дешевый код. Самый дешевый код длины 6 стоит 35 копеек и может быть реализован двумя способами:
1,01,00000,001,0001,00001
0000,01,10,001,0001,11
А сколькими способами может быть реализован самый дешевый код длиной 946583626
Если Вы не можете ее решить, значит Вы не можете ее решить :-)

Обсуждение
Правила >>
