九度OJ——1172哈夫曼树
来源:互联网 发布:手提旅行包 知乎 编辑:程序博客网 时间:2024/05/17 22:34
题目描述:
哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。
输入:
输入有多组数据。
每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000)。
输出:
输出权值。
样例输入:
5
1 2 2 5 9
样例输出:
37
AC代码:
#include <iostream>#include <queue> #include <cstdio>using namespace std; priority_queue<int ,vector<int>,greater<int> > huffman; int N,data1,data2,weight = 0;int main(){ while(~scanf("%d",&N)){ while(!huffman.empty()){ huffman.pop(); } for(int i = 0 ; i < N ; i++){ cin>>data1; huffman.push(data1); } weight = 0; while(huffman.size() > 1){ data1 = huffman.top(); huffman.pop(); data2 = huffman.top(); huffman.pop(); weight += data1+data2; huffman.push(data1+data2); } cout<<weight<<endl; } return 0; }
阅读全文
0 0
- 九度OJ——1172哈夫曼树
- 九度OJ-1172-哈夫曼树
- 九度OJ-1172 哈夫曼树
- 九度OJ - 1172 - 哈夫曼树
- 九度OJ-1172-哈夫曼树
- 哈夫曼树--九度OJ-1172
- 九度 oj 1172
- 九度OJ 1172
- 九度OJ-1172-哈夫曼树
- 九度OJ 1172:哈夫曼树 (贪心)
- ACM--哈夫曼树--九度OJ-1172
- 九度OJ题目1172:哈夫曼树
- 九度OJ题目1172:哈夫曼树
- 九度OJ——1384
- 九度OJ —— 1000
- 九度OJ —— 1001
- 九度OJ —— 1002
- 九度OJ —— 1003
- 两个队列实现一个栈
- 源码库镜像下载地址
- ConfigReader(九)—— ReadGuideAbsorbTaskConfig
- Tensorflow第一个mnist数据集(理解)
- 检测版本号和版本名出现介绍页面
- 九度OJ——1172哈夫曼树
- IBM Rational Rhapsody 系统建模常见问题与建议
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数
- Java Web 简单的分页显示实例代码
- 一只很能装的创意午餐杯,节后综合症被治愈了丨钛空舱最生活
- Java后端程序员面经(1-2. Java基础之异常篇)
- python---property属性
- [bzoj2763]飞行路线 分层图最短路
- keras入门-简单数据集的运用