T792629 【C1096】 - 哈夫曼编码与解码

题目描述

小明刚学过哈夫曼树和哈夫曼编码的相关知识,现在老师想要考他一考,让他写个程序来进行哈夫曼的编码与解码

输入格式

第1行,1个正整数n,代表接下来需要进行哈夫曼编码的字符个数 接下来n行,每行格式: 字母 空格 字母出现的频率 接下来1行,一串由这些字母组成的字符串s1,待编码的字符串(不包含空格) 接下来1行,一串哈夫曼编码的二进制内容s2,待解码的哈夫曼编码(不包含空格)

输出格式

第1行,字符串s1对应的二进制哈夫曼编码(哈夫曼编码结果) 第2行,哈夫曼编码s2对应的原始字符串(哈夫曼解码结果)

说明/提示

**【输入输出样例说明】 ** 上面的样例说明对应的哈夫曼树为: ![](https://cdn.luogu.com.cn/upload/image_hosting/futz38s1.png) **【数据范围与提示】** 说明: 由于哈夫曼编码的不唯一性,这里约定在构建哈夫曼树的时候,将权值小的叶子节点作为左子树节点,同时题目提供的数据保证按照约定构建的每个字符的哈夫曼编码是确定唯一的 对于100%的数据满足:$2 \le n \le 10$,s1的长度