1.5 KiB
1.5 KiB
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
5900f4481000cf542c50ff5a | 問題 219: 不均一な料金で符号を送信する | 1 | 301861 | problem-219-skew-cost-coding |
--description--
A
と B
をビット列 (0 と 1 の数列) とします。
B
の左端から A
の長さ分のビットが A
に等しい場合、A
は B
の接頭辞と呼ばれます。
例えば、00110 は 001101001 の接頭辞ですが、00111 や 100110 の接頭辞ではありません。
サイズ n
の接頭符号は、いずれのビット列も他のビット列の接頭辞ではない、n
個の相異なるビット列の集合です。 サイズ 6 の接頭符号の例を下に示します。
0000, 0001, 001, 01, 10, 11
ここで、"0" のビットを 1 つ送信するのに 1 ペンス、"1" のビットを 1 つ送信するのに 4 ペンスかかるとします。 上の例にある接頭符号の総費用は 35 ペンスです。これは偶然にも、今の焦点である不均一な料金体系において最も安い符号です。 これを Cost(6) = 35
と簡潔に表します。
Cost(10^9)
を求めなさい。
--hints--
skewCostCoding()
は 64564225042
を返す必要があります。
assert.strictEqual(skewCostCoding(), 64564225042);
--seed--
--seed-contents--
function skewCostCoding() {
return true;
}
skewCostCoding();
--solutions--
// solution required