第07部分贪心树刷题瑞客_第1页
第07部分贪心树刷题瑞客_第2页
第07部分贪心树刷题瑞客_第3页
第07部分贪心树刷题瑞客_第4页
第07部分贪心树刷题瑞客_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

哈夫曼树题1数据结构与算法365特训营2哈夫曼树刷题Bailian4080Huffmancodingtree类似UVA10954POJ3253FenceRepairPOJ1521EntropyUVA12676InvertingHuffmanUVA240VariableRadixHuffmanEncoding3哈夫曼树知识点概述构造一棵哈夫曼树,是将所要编码的字符作为叶子结点,该字符在文件中的使用频率作为叶子结点的权值,以自底向上的方式,通过n-1次的“合并”运算后构造出的树。核心思想是让权值大的叶子离根最近。哈夫曼算法采取的贪心策略是每次从树的集合中取出没有双亲且权值最小的两棵树作为左右子树,构造一棵新树,新树根节点的权值为其左右孩子结点权值之和,将新树插入到树的集合中。4哈夫曼树知识点概述5哈夫曼树刷题Bailian4080题目描述()构造一个具有n个外部节点的扩充二叉树,每个外部节点Ki有一个Wi对应,作为该外部节点的权。使得这个扩充二叉树的叶节点带权外部路径长度总和最小:

Min(W1*L1+W2*L2+W3*L3+…+Wn*Ln)Wi:每个节点的权值。Li:根节点到第i个外部叶子节点的距离。编程计算最小外部路径长度总和。类似UVA109546哈夫曼树刷题bailian4080输入第一行输入一个整数n,外部节点的个数。第二行输入n个整数,代表各个外部节点的权值。

2<=N<=100输出

输出最小外部路径长度总和。样例输入

4

1135样例输出

177哈夫曼树刷题POJ3253题目描述()农夫约翰想修修牧场周围的一小部分篱笆。他测量围栏发现他需要N块(1≤

N

≤20000)木板,每一个都具有整数长度Li(1≤

Li≤50000)。然后,他购买了一块足够长的单板长板,以便得到N块木板(即长度为长度L

i的总和)。约翰忽略了“切口”,当切割锯切时,木屑损失了额外的长度,你也应该忽略它。约翰遗憾地意识到他没有切割木头的锯子,所以他去农夫唐的农场,礼貌地问他是否可以借锯。唐并没有借给约翰锯,而是向约翰提供了切割N

-1块每块的切割费用。切割一块木头的费用与其长度完全相同。切割长度为21的木板需要21美分。唐让约翰决定切割木板的顺序和位置。帮助约翰确定他得到N个木板的最低金额。约翰知道他可以以各种不同的顺序切割板,这将导致不同的费用,因为所得到的中间板具有不同的长度。类似Bailian4080/UVA109548哈夫曼树刷题POJ3253输入第1行:一个整数N,木板的数量第2行.N

+1:每行包含一个描述所需木板长度的整数输出第1行:一个整数:他必须花费N

-1削减的最低金额样例输入3858样例输出349哈夫曼树刷题POJ1521题目描述()熵编码器是一种数据编码方法,其通过对去除了“浪费”或“额外”信息的消息进行编码来实现无损数据压缩。考虑文本“AAAAABCD”。使用ASCII,编码需要64位。由于字形“A”以更高的频率出现,可以通过用更少的位编码来做得更好吗?最佳编码是将“A”编码为“0”,将“B”编码为“10”,将“C”编码为“110”,和“D”与“111”。(这显然不是唯一的最佳编码,因为很明显,对于任何给定的编码,B,C和D的编码可以自由地互换,而不会增加最终编码消息的大小。)使用此编码,消息编码为只有13位到“0000010110111”,压缩比为4.9:1(也就是说,最终编码消息中的每个位表示与原始编码中4.9位一样多的信息)。

10哈夫曼树刷题POJ1521输入输入文件将包含一个文本字符串列表,每行一个。文本字符串将仅包含大写字母数字字符和下划线(用于代替空格)。输入的结尾将由仅包含单词“END”作为文本字符串的行发出信号。输出对于输入中的每个文本字符串,输出8位ASCII编码的位长度,最佳无前缀可变长度编码的位长度,以及精确到一个小数点的压缩率。样例输入

AAAAABCD

THE_CAT_IN_THE_HAT

END样例输出

64134.9

144512.8

11哈夫曼树刷题UVA12676题目描述()农夫约翰想修修牧场周围的一小部分篱笆。他测量围栏发现他需要N块(1≤

N

≤20000)木板,每一个都具有整数长度Li(1≤

Li≤50000)。然后,他购买了一块足够长的单板长板,以便得到N块木板(即长度为长度L

i的总和)。约翰忽略了“切口”,当切割锯切时,木屑损失了额外的长度,你也应该忽略它。约翰遗憾地意识到他没有切割木头的锯子,所以他去农夫唐的农场,礼貌地问他是否可以借锯。唐并没有借给约翰锯,而是向约翰提供了切割N

-1块每块的切割费用。切割一块木头的费用与其长度完全相同。切割长度为21的木板需要21美分。唐让约翰决定切割木板的顺序和位置。帮助约翰确定他得到N个木板的最低金额。约翰知道他可以以各种不同的顺序切割板,这将导致不同的费用,因为所得到的中间板具有不同的长度。12哈夫曼树刷题UVA12676输入第1行:一个整数N,木板的数量第2行.N

+1:每行包含一个描述所需木板长度的整数输出第1行:一个整数:他必须花费N

-1削减的最低金额样例输入3858样例输出3413哈夫曼树刷题UVA240题目描述()农夫约翰想修修牧场周围的一小部分篱笆。他测量围栏发现他需要N块(1≤

N

≤20000)木板,每一个都具有整数长度Li(1≤

Li≤50000)。然后,他购买了一块足够长的单板长板,以便得到N块木板(即长度为长度L

i的总和)。约翰忽略了“切口”,当切割锯切时,木屑损失了额外的长度,你也应该忽略它。约翰遗憾地意识到他没有切割木头的锯子,所以他去农夫唐的农场,礼貌地问他是否可以借锯。唐并没有借给约翰锯,而是向约翰提供了切割N

-1块每块的切割费用。切割一块木头的费用与其长度完全相同。切割长度为21的木板需要21美分。唐让约翰决定切割木板的顺序和位置。帮助约翰确定他得到N个木板的最低金额。约翰知道他可以以各种不同的顺序切割板,这将导致不同的费用,因为所得到的中间板具有不同的长度。14哈夫曼树刷题UVA240输入第1行:一个整数N,木板的数量第2行.N

+1:每行包含一个描述所需木板长度的整数输出第1行:一个整数:他必须花费N

-1削减的最低金额样例输入3858样例输出34作业刷题:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论