洞察移动政务小程序助力政府数字化转型,保障数据安全和效率提升
704
2022-09-01
nyoj801 Haffman编码(优先队列实现)
题目801题目信息运行结果本题排行讨论区
Haffman编码
1000 ms | 内存限制: 65535
3
哈弗曼编码大家一定很熟悉吧(不熟悉也没关系,自己查去。。。)。现在给你一串字符以及它们所对应的权值,让你构造哈弗曼树,从而确定每个字符的哈弗曼编码。当然,这里有一些小规定:
1.规定哈弗曼树的左子树编码为0,右子树编码为1;
2.若两个字符权值相同,则ASCII码值小的字符为左孩子,大的为右孩子;
3.创建的新节点所代表的字符与它的左孩子的字符相同;
4.所有字符为ASCII码表上32-96之间的字符(即“ ”到“`”之间的字符)。
输入包含多组数据(不超过100组)
每组数据第一行一个整数n,表示字符个数。接下来n行,每行有一个字符ch和一个整数weight,表示字符ch所对应的权值,中间用空格隔开。
输入数据保证每组测试数据的字符不会重复。
输出 对于每组测试数据,按照输入顺序输出相应的字符以及它们的哈弗曼编码结果,具体格式见样例。 样例输入
3 a 10 b 5 c 8 4 a 1 b 1 c 1 d 1
样例输出
a:0 b:10 c:11 a:00 b:01 c:10 d:11
我真是日了狗了。。。
一直想着出题人不会出n=0的情况把。一直也就没判断,wa了一夜。今天检查错误
一直没发现。就加上n=0 结果ac了。坑坑坑啊、、、
/*8a 5b 29c 7d 8e 14f 23g 3h 11*/#include
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~