有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1]。问安排怎样的合并顺序,能够使得总合并代价达到最小。 //石子如果能交换顺序的话就是哈夫曼树了 //但是不能交换的话我们就只能考虑合并的顺序了,由于这个题目有贪心的 ...
分类:
其他好文 时间:
2016-11-23 20:02:47
阅读次数:
105
哈弗曼树定义:给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。 哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 ...
分类:
其他好文 时间:
2016-11-17 00:49:32
阅读次数:
239
一.背景介绍: 给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 二.实现步骤: 1.构造一棵哈夫曼树 2.根据创建好的哈夫曼树创建一张哈夫曼编码表 ...
分类:
编程语言 时间:
2016-11-15 07:37:37
阅读次数:
283
1、树与树的表示
什么是树?
客观世界中许多事物存在层次关系
人类社会家谱
社会组织结构
图书信息管理
分层...
分类:
其他好文 时间:
2016-10-31 14:11:42
阅读次数:
264
一、概念 几个与哈夫曼树有关的概念【路径】树中一个结点到另一个结点之间的分支构成这两个结点之间的路径【路径长度】路径上的分枝数目称作路径长度【树的路径长度】从树根到每一个结点的路径长度之和【权值】指重要程度,在这里指出现的频率。如在一篇文章中“我”字比“朕”字出现频率要高,可权重大【结点的带权路径长 ...
分类:
其他好文 时间:
2016-10-19 13:47:42
阅读次数:
199
http://poj.org/problem?id=3253 这就是 最典型的哈夫曼树的题型,我们就根据这道题学习一下哈夫曼树 这是最开始我们把21据下来之后我们据下8,然后再据下5得到34,可以看出13被用到2次,8被用到1次13*2+8=34。 这幅图片,我们先据下21,再据下5,再据下8得到3 ...
分类:
其他好文 时间:
2016-10-07 20:46:15
阅读次数:
228
problem sort 题目大意 有n个数组,每个数组有a[i]个元素,每次可以将至多k个数组合并为一个数组,所花费代价为这些数组的元素和。给定代价上限,求将所有数组合并为1个数组的最小k。 解题分析 二分k后就成了k叉哈夫曼树问题。 对于k叉哈夫曼树,可以利用所合并元素的权值单调性,用两个双端队 ...
分类:
其他好文 时间:
2016-09-19 20:59:45
阅读次数:
183
题目链接:hdu5884 Sort 题意:n个有序序列的归并排序.每次可以选择不超过k个序列进行合并,合并代价为这些序列的长度和.总的合并代价不能超过T, 问k最小是多少。 题解:先二分k,然后在k给定的情况下,构造k叉哈夫曼树。O(nlogn)的做法:先对所有数排序,另外一个队列维护合并后的值,取 ...
分类:
其他好文 时间:
2016-09-18 22:16:19
阅读次数:
248
这题真心比较奥义,先见这个人的博客:http://blog.csdn.net/libin66/article/details/52565484 补0的方法是使得其满足成为满K叉树,而其博客中所说的“所以当(n-1)%(k-1)!=0的时候,会出现归并不能最大化个数的情况,这样会影响二分的单调性”我作 ...
分类:
其他好文 时间:
2016-09-18 22:07:43
阅读次数:
147
这道题目,我做的时候不会哈夫曼树,自己贪心是错的都不知晓。还可以发现这里不必用优先队列,可以用两个队列,毕竟插入的数是有单调性的。 ...
分类:
其他好文 时间:
2016-09-18 22:02:52
阅读次数:
108