BIT 1020 小白鼠--赫夫曼树(最优二叉树)

原创 2013年12月03日 10:56:09

http://acm.bit.edu.cn/mod/programming/view.php?a=506

经教主的指导+自己的研究,终于搞懂这道题了。。。

赫夫曼树(最优二叉树)

构造 最优二叉树,求树的带全路径长度


#include<stdio.h>
#include<string.h>
#include<queue>
#include<functional>
using namespace std;

int main()
{
	int i,j,k;
	int t;
	scanf("%d",&t);
	priority_queue<double,vector<double>,greater<double> > q;  //注意和下面的写法,有个空格的区别,这么写就是对的
	//priority_queue<double,vector<double>,greater<double>> q;  这么写就编译不了。。
	while(t--)
	{
		int n;
		while(!q.empty())
			q.pop();
		scanf("%d",&n);
		for(i=0;i<n;i++)
		{
			double temp;
			scanf("%lf",&temp);
			q.push(temp);
		}
		double ans=0;
		while(q.size()!=1)
		{
			double t1,t2;
			t1=q.top(),q.pop();
			t2=q.top(),q.pop();
			ans+=(t1+t2);
			q.push(t1+t2);
		}
		if(n==1)
			printf("%.2lf\n",q.top());
		else
			printf("%.2lf\n",ans);
	}
}



1020 小白鼠:哈夫曼树

1020 小白鼠 小白鼠 时间限制: 1秒  内存限制: 64M Description 有 n 个瓶子,已知其中有且仅有一个瓶子的饮料有毒。现在我们想知道哪个瓶子的饮料有毒,...

赫夫曼树(最优二叉树)-数据结构(16)

一、例子引出问题 参考书上P144-P149 。在我们计算成绩排名的时候,我们大部分人的成绩都在中等的,还有一小部分在极优和极差中,服从正态分布。因此出现了让有权重的树,为了将经常用到的判断放在前面...

构造最优二叉树-赫夫曼(Huffman)树算法

http://blog.163.com/zhoumhan_0351/blog/static/3995422720098275836215/ 构造最优二叉树-赫夫曼(Huffman)树算法   ...

树之赫夫曼树 最优二叉树

一、介绍赫夫曼树可以用来优化算法,减少运行次数;还可以用于电报编码。 二、优化算法对于我们嵌套的if语句,通常我们需要判断多次if。但是if里表达式的顺序与程序运行速度有很大关系。如果我们把频率高的...

数据结构学习笔记 --- 最优二叉树(赫夫曼树)

1. 引言 最优二叉树是带权路径长度最短的二叉树。根据结点的个数,权值的不同,最优二叉树的形状也各不相同。它们的共同点是:带权值的结点都是叶子结点。权值越小的结点,其到根结点的路...
  • whz_zb
  • whz_zb
  • 2012年02月28日 23:49
  • 1294

ACM程序设计选修课——Problem D: (ds:树)合并果子(最优二叉树赫夫曼算法)

Problem D: (ds:树)合并果子 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 80  Solved: 4 [Submit][Status][...

6.6.1最优二叉树(赫夫曼树)

6.6.1最优二叉树(赫夫曼树)

[C/C++] 构造最优二叉树-赫夫曼(哈夫曼、Huffman)树算法实现

一、基本概念 1、赫夫曼(Huffman)树又称最优二叉树或最优搜索树,是一种带权路径长度最短的二叉树。在许多应用中,常常赋给树中结点一个有某种意义的实数,称此实数为该结点的权。从树根结点到该结点之...

满二叉树、完全二叉树、最优二叉树(赫夫曼树)、二叉排序树、二叉判定树

1、满二叉树 定义:除最后一层的结点外,每一层的所有结点都有两个子结点。 另外一个定义:深度为k且有2^k-1个结点的二叉树。   满二叉树是一颗树深度为h,最大层数为k,且深度与最大层数相同,即k=...

Huffman tree(赫夫曼树、霍夫曼树、哈夫曼树、最优二叉树)

Huffman tree(赫夫曼树、霍夫曼树、哈夫曼树、最优二叉树)flyfish 2015-8-1Huffman tree因为翻译不同所以有其他的名字 赫夫曼树、霍夫曼树、哈夫曼树 定义引用自严蔚...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:BIT 1020 小白鼠--赫夫曼树(最优二叉树)
举报原因:
原因补充:

(最多只允许输入30个字)