当前位置: 首页 > article >正文

XDOJ 767 哈弗曼树

试题名称 哈弗曼树

时间限制: 1 秒

内存限制: 256KB

问题描述

假设用于通信的电文由n个字符组成,字符在电文中出现的频度(权值)为w1,w2,…,wn,试根据该权值序列构造哈夫曼树,并计算该树的带权路径长度。

输入说明

第1行为n的值,第2行为n个整数,表示字符的出现频度。

输出说明

输出所构造哈夫曼树的带权路径长度。

输入样例

8

7 19 2 6 32 3 21 10

输出样例

261

// 2024/12/29 OK
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n;
    priority_queue<int, vector<int>, greater<int>> q;
    cin >> n;
    for (int i = 0; i < n; i ++) {
        int tmp;
        cin >> tmp;
        q.push(tmp);
    }
    int cnt = 0;
    while (q.size() >= 2) {
        int a = q.top(); q.pop();
        int b = q.top(); q.pop();
        int c = a + b;
        cnt += c;
        q.push(c);
    }
    cout << cnt;
    return 0;
}


http://www.kler.cn/a/459898.html

相关文章:

  • 第十四届蓝桥杯Scratch省赛中级组—智能计价器
  • 【PCIe 总线及设备入门学习专栏 4.5 -- PCIe Message and PCIe MSI】
  • 珞珈一号夜光遥感数据地理配准,栅格数据地理配准
  • JVM对象内存分配
  • 加密流量TLS1.2 和TLS1.3的握手区别
  • 7-58 输出不重复的数组元素
  • VBA批量插入图片到PPT,一页一图
  • 【uniapp】APP内嵌webview消息传递
  • 计算机网络 (13)信道复用技术
  • SmartAIChain荣获重要认可
  • MATLAB符号计算-符号表达式基础运算操作
  • CAD学习 day11
  • 【数据结构】线性数据结构——链表
  • 深入了解 Linux tree 命令及其常用选项:Linux如何显示目录结构和文件大小
  • 【分布式文件存储系统Minio】2024.12保姆级教程
  • CentOS修改docker镜像存储位置并进行数据迁移
  • Java-list均分
  • 机器学习-高斯混合模型
  • 深度学习中常用的开源数据集
  • 艾体宝产品丨加速开发:Redis 首款 VS Code 扩展上线!
  • android13 系统文字大小和显示大小的修改
  • 【Linux】:多线程(读写锁 自旋锁)
  • RabbitMQ基础篇之Java客户端快速入门
  • 【每日学点鸿蒙知识】RichText展示问题、slider组件内置间距、WebView性能优化、AVSession错误
  • 12.30 linux 文件操作,磁盘分区挂载
  • 【2024年-7月-13日-开源社区openEuler实践记录】探索 CPM4OSSP-UI:提升用户交互体验的开源宝藏