#Z01816. 输出哈夫曼编码

输出哈夫曼编码

题目描述

再好的理解也需要写一道模板感受一下。 先定n个小写字母与其对应的出现次数,对所有字母进行升序并输出对应的哈夫曼编码(不删除前导零)。 本题中我们限制:当拼接左右节点时,较小的结点作为左节点,较大的结点作为右节点。 同时我们知道,在哈夫曼树中,深度下降时,该结点二进制末尾会添加0或者1。现在我们认为,往左节点下降深度时,该节点二进制末尾+0,往右结点下降深度时,该结点二进制末尾+1。

输入格式

多组输入。 第一行输入一个整数n。 之后n行每行输入一个小写字母和其出现次数。(出现次数互不相同)

输出格式

对字母升序,输出n行。 每行输出字母以及其对应的哈夫曼编码。

6
a 21
b 332
c 23
d 98
e 1
f 43
a 00101
b 1
c 0011
d 01
e 00100
f 000