【模板】哈夫曼树构造
来源:互联网 发布:介绍花苗可靠的淘宝店 编辑:程序博客网 时间:2024/06/13 16:04
题目描述:
构造哈夫曼树:给出一列数,构造一棵二叉树,分别以这些点为叶子的权值,使所有叶子的权值和它到树根的距离(边数)的乘积之和为最小。
输入格式:
第一行一个正整数n第二行n个整数
输出格式:
所有叶子的权值和它到树根的距离(边数)的乘积之和的最小值样例输入:
44 2 7 1
样例输出:
24
数据范围:n<=10000
#include<iostream>#include<queue>#include<cstdio>using namespace std;struct XY{int huff,sum;}t[30010];struct cmp{bool operator()(XY &a,XY &b){return a.sum>b.sum;}};priority_queue<XY,vector<XY>,cmp> Q;int sz=0,n,m,next_nm;int main(){cin >>n;sz=n;next_nm=n+1;for (int i=1;i<=n;++i)cin >>t[i].sum,Q.push(t[i]);while (sz>1){XY tmp1=Q.top();Q.pop();XY tmp2=Q.top();Q.pop();t[next_nm].huff=tmp1.huff+tmp1.sum+tmp2.huff+tmp2.sum;t[next_nm].sum=tmp1.sum+tmp2.sum;//用sum可以帮助huff权值的转移Q.push(t[next_nm]);--sz;++next_nm;}cout <<Q.top().huff<<endl;return 0;}
阅读全文
1 0
- 【模板】哈夫曼树构造
- ecshop模板教程-模板构造
- C++模板拷贝构造
- 为类模板加上构造函数和默认构造函数
- 模板拷贝构造与赋值的不对称
- 质数构造以及质因数分解模板
- hdu 4700模板题 Homory tree+构造
- 模板函数、拷贝构造函数使用总结
- 构造哈夫曼树
- 构造哈夫曼树
- 简单类模板实例化_默认构造函数
- 模板参数的类型参数可以这样构造
- c++调用基类的构造函数(模板类)
- 带复制构造函数、赋值运算符的模板队列
- 使用Java泛型构造模板方法模式
- poj3177Redundant Paths【构造双连通分量:并查集缩点 模板】
- 类模板以及赋值运算符重载、拷贝构造函数
- 模板方法模式在协议构造与解析中的应用
- with关键字用法详解
- 武夫提笔——席卷世界Nodejs之初步对比:与opa各占几分春色?
- javaSwing_3Swing的技术概要
- UVa 1590 IP Networks
- Spring面试题
- 【模板】哈夫曼树构造
- gantt图demo
- gdb调试多进程、多线程
- csdn 普通编辑器 代码样式 代码高亮 高亮代码皮肤更换
- springboot+mybatis(读写分离)
- 整洁代码中的魔术值
- BFS 版本的匈牙利算法
- 计算机网络中的七层模型
- 算法第4版(谢路云译)学习笔记(1) -- 课后习题答案