描述

构造一个具有n个外部节点的扩充二叉树,每个外部节点Ki有一个Wi对应,作为该外部节点的权。使得这个扩充二叉树的叶节点带权外部路径长度总和最小:
Min( W1 * L1 + W2 * L2 + W3 * L3 + … + Wn * Ln)
Wi:每个节点的权值。Li:根节点到第i个外部叶子节点的距离。编程计算最小外部路径长度总和

输入

第一行输入一个整数t,代表测试数据的组数。
对于每组测试数据,第一行输入一个整数n,外部节点的个数。第二行输入n个整数,代表各个外部节点的权值。
2<=N<=100

输出

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

样例输入

2
3
1 2 3
4
1 1 3 5

样例输出

9
17

堆的知识 定义优先队列 从小开始排列
priority_queue<int,vector,greater >q;
代码如下

#include <iostream>
#include <queue>
#include <bits/stdc++.h>
#include <vector>
using namespace std;
int main()
{int T;cin>>T;while(T--){priority_queue<int,vector<int>,greater<int> >q;int n;cin>>n;int array[105];for(int i=0; i<n; i++){cin>>array[i];q.push(array[i]);}int num=0;for(int i=1; i<=n-1; i++){int sum=0;sum=sum+q.top();q.pop();sum=sum+q.top();q.pop();num=num+sum;q.push(sum);}cout<<num<<endl;}return 0;
}

Huffman编码树 求WPL相关推荐

  1. 二叉树--Huffman编码树--优先队列解法

    超链接:Huffman编码树 总时间限制:  1000ms  内存限制:  65535kB 描述 构造一个具有n个外部节点的扩充二叉树,每个外部节点Ki有一个Wi对应,作为该外部节点的权.使得这个扩充 ...

  2. 二叉树应用-Huffman编码树(数据结构基础 第6周)

    问题描述 分析 做了,在POJ上能AC,但是在coursera上一直提示Compile Error. 没找着问题,呃,,, 源码 #include<iostream> using name ...

  3. 数据结构二叉树之Huffman编码

    二叉编码树以及Huffman编码 abstract: ​ 在初学二叉树的时候,我们就提出了二叉树的一个基本应用:编码树.那么,就编码树我们究竟该如何实现呢?下面我们来探讨这个问题. 一.PFC编码以及 ...

  4. c语言递归计算哈夫曼编码,哈夫曼树遍历求WPL和哈夫曼编码C语言--For初学者

    这篇文章使用纯c来写的,实现了生成哈夫曼树.求WPL和生成哈夫曼编码的应用,思路是,先定义一个结构体如下 typedef struct node { int weight; struct node * ...

  5. Huffman树与Huffman编码

    Huffman树与Huffman编码 问题描述 已知某系统在通信联络中只可能出现6种字符,其使用频度如下表所示: 根据Huffman编码原理,为6种字符设计一种Huffman编码方案. 算法分析与设计 ...

  6. huffman树和huffman编码

    不知道为什么,我写的代码都是又臭又长. 直接上代码: #include <iostream> #include <cstdarg> using namespace std; c ...

  7. 数据结构实验三:Huffman树及Huffman编码的算法实现

    Exp03 Huffman树及Huffman编码的算法实现 Author: Maskros 实验目的 了解该树的应用实例,熟悉掌握Huffman树的构造方法及Huffman编码的应用, 了解Huffm ...

  8. Huffman编码(Huffman树)

    [0]README 0.1) 本文总结于 数据结构与算法分析, 源代码均为原创, 旨在 理解 "Huffman编码(Huffman树)" 的idea 并用源代码加以实现: 0.2) ...

  9. Huffman编码C实现

    赫夫曼树(Huffman Tree),又称最优二叉树,是一类带权路径长度最短的树.假设有n个权值{w1,w2,-,wn},如果构造一棵有n个叶子节点的二叉树,而这n个叶子节点的权值是{w1,w2,-, ...

最新文章

  1. Ubuntu安装Anaconda
  2. LeetCode Gas Station(双指针 )
  3. 按home退出程序到后台后再打开崩溃的问题
  4. CCS中给工程加入C66x CSL库和头文件
  5. faster-rcnn原理及相应概念解释
  6. usaco1.2.2 transform
  7. [css] 为什么float会导致父元素塌陷
  8. dom文档对象手册_HTML5学习之DOM编程
  9. Python中re(正则表达式)模块学习
  10. 婚纱摄影五大标杆品牌告诉你,客资转化居然可以这么玩?
  11. linux设备驱动之PCIE驱动开发
  12. 编译WINDOWS版FFmpeg:编译SDL
  13. TCP协议与IP协议
  14. AutoPatch java_Android热更新九:Robust热更新原理
  15. 蒙特卡罗(洛)模拟——手把手教你数学建模
  16. 分享一下关于拼多多商品详情SKU解析思路以及如何解决
  17. python3 chm文档下载_python3.7.0官方参考文档 最新api文档 chm_Python教程_源雷技术空间...
  18. windows下,查看apk的包名、以及查找appActivity(aapt命令)
  19. RSA no_padding加密(modulus、exponent构造公钥)
  20. 第一批财务自由的90后,都做对了什么?

热门文章

  1. MySQL【参考】【工具】根据身份证号提取省份、出生日期、年龄、性别
  2. 单机版坦克大战游戏总结
  3. 【转】你在读博士期间明白的最深刻的道理是什么?
  4. 2、Python 当前时间加一天、一小时、一分钟
  5. 安装 Frida 和 Passionfruit
  6. 《鬼谷子的局8》—— 读后总结
  7. 什么是猴子补丁(monkey patch)
  8. 报数游戏(2)--【英雄会】
  9. WebService -- CXF 总结
  10. dda算法控制电机_求PWM速度控制系统是通过脉宽调制器对大功率晶体管的开关时间进...