【哈夫曼树】带权路径长度WPL
题目描述
哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。
输入
输入有多组数据。
每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000)。
输出
输出权值。
样例输入
2
2 8
3
5 11 30
样例输出
10
62
#include <cstdio>
#include <queue>
using namespace std;priority_queue<long long, vector<long long>, greater<long long> > q;int main(int argc, char** argv) {int n,i;long long x,y,temp,wpl;while(scanf("%d", &n) != EOF){ //多组输入 wpl = 0; //初始化权值 while(!q.empty()) q.pop(); //初始化队列 for(i = 0; i < n; i++){scanf("%lld", &temp);q.push(temp); }while(q.size() > 1){x = q.top();q.pop();y = q.top();q.pop();q.push(x + y); wpl += x + y;}printf("%lld\n", wpl);}return 0;
}
【哈夫曼树】带权路径长度WPL相关推荐
- 带权路径长度wpl值_哈夫曼树带权路径长度怎么计算
哈夫曼树的带权路径长度是什么? 1.树的路径长度 树的路径长度是从树根到树中每一结点的路径长度之和.在结点数目相同的二叉树中,完全二叉树的路径长度最短. 2.树的带权路径长度(Weighted Pat ...
- 哈夫曼树带权路径长度
一. 长什么样? 左边是普通树,右边是哈夫曼树 图a: WPL=5*2+7*2+2*2+13*2=54 图b: WPL=5*3+2*3+7*2+13*1=48 可见,图b的带权路径长度较小,我们可以证 ...
- 哈夫曼树带权路径长度求解(C语言实现)
题目描述: 哈夫曼树,第一行输入一个数n,表示叶结点的个数. 需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出哈夫曼树的带权路径长度(WPL). 输入格式 ...
- 哈夫曼树带权路径长度c语言,【哈夫曼树】求结点的哈夫曼的带权路径长度
本文用C++采用顺序存储实现求哈夫曼树(即最小生成树)的带权路径长度 努力 下面来了解一下哈夫曼树的构造以及如何求带权路径长度: 哈夫曼树为带权路径长度最小的树 哈夫曼树 哈夫曼树的顺序存储 [问题描 ...
- 【数据结构-N】哈夫曼树带权路径计算
那个闪闪发光的人 会在某一天的雨后,不经意地出现在你的迷茫路口. 目录: 哈夫曼树的构建 带权路径长度计算 >>构建 哈夫曼树,又称最优二叉树,是一类带权路径长度最短的树. 构建哈夫曼树的 ...
- 求节点的哈夫曼的带权路径长度
[问题描述] 已知输入一串正整数,正整数之间用空格键分开,请建立一个哈夫曼树,以输入的数字为叶节点,求这棵哈夫曼树的带权路径长度. [输入形式] 首先输入正整数的个数,然后接下来为接下来的正整数, ...
- 算法学习笔记——数据结构:哈夫曼树、带权路径长度WPL、哈夫曼编码
引入 合并果子问题如下: 有n堆果子,每次可以合并任意两堆果子,耗费体力值为[两堆果子数之和],最终在n-1次合并后,得到一堆果子. 给出合并的方案,使得耗费的体力值最小 例如有3堆果子,质量依次为1 ...
- 哈夫曼树及求其WPL的算法
哈夫曼树及求其WPL算法 一.概念 给定 N N N个权值作为 N N N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree ...
- 哈夫曼树建立与二叉树WPL算法以及相关例题
目录 哈夫曼树静态数组形式建立 哈夫曼树二叉链表形式建立 求WPL 哈夫曼树编码解码 更新 哈夫曼树的建立有两种方式,一种是通过静态数组的方式来建立(这种方式比较简洁明了好理解),由于不想篇幅太长了, ...
- 二叉树的带权路径长度WPL算法实现
文章目录 题目描述 算法思想 实现代码 题目描述 二叉树的带权路径长度WPL是二叉树中所有叶结点的带权路径长度之和.给定一棵二叉树,采用二叉链表存储,叶子结点的weight域为该结点的权值.请设计一 ...
最新文章
- 02基于注解开发SpringMVC项目(jar包,异步,request,参数传递,多选的接收,Model传参,map传参,model传参,ajax,重定向,时间日期转换)
- Python中super的用法
- java 压缩二进制流_Java:自己动手写压缩软件,超详细解释(哈夫曼实现)
- 新年计算机等级的决定的英语,新年决定英语对话及译文
- OpenStack点滴01-概览
- 蓝桥杯2019年第十届C/C++省赛C组第一题-求和
- Latent Dirichlet Allocation(LDA)
- 实现 8086 汇编编译器(一)——基本框架
- form中action属性
- Robocup场地信息
- IDC数据中心机房气体灭火系统知识
- Idea安装完成后打不开的问题
- NX程序调试方法实例讲解
- ubuntu11.04下Discuz论坛的安装
- Macbook Pro常用快捷键及问题汇总
- leetcode 19. 删除链表的倒数第 N 个结点(双指针应用)
- html 最大输入长度,TextArea设置MaxLength属性最大输入值的js代码
- 现在微商做什么比较好赚钱 微商推广好做吗 怎么做
- VC++2005相关问题解决方案
- Mesh is Art(5):Circle Packing Mesh优化及其应用