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

Huffuman树-进阶题1

Huffuman树

题目

  • 问题描述
    Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。
    给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下:
    1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa + pb。
    2. 重复步骤1,直到{pi}中只剩下一个数。
    在上面的操作过程中,把所有的费用相加,就得到了构造Huffman树的总费用。
    本题任务:对于给定的一个数列,现在请你求出用该数列构造Huffman树的总费用。
    例如,对于数列{pi}={5, 3, 8, 2, 9},Huffman树的构造过程如下:
    1. 找到{5, 3, 8, 2, 9}中最小的两个数,分别是2和3,从{pi}中删除它们并将和5加入,得到{5, 8, 9, 5},费用为5。
    2. 找到{5, 8, 9, 5}中最小的两个数,分别是5和5,从{pi}中删除它们并将和10加入,得到{8, 9, 10},费用为10。
    3. 找到{8, 9, 10}中最小的两个数,分别是8和9,从{pi}中删除它们并将和17加入,得到{10, 17},费用为17。
    4. 找到{10, 17}中最小的两个数,分别是10和17,从{pi}中删除它们并将和27加入,得到{27},费用为27。
    5. 现在,数列中只剩下一个数27,构造过程结束,总费用为5+10+17+27=59。
  • 输入说明
    输入的第一行包含一个正整数n(n<=100)。
    接下来是n个正整数,表示p0, p1, …, pn-1,每个数不超过1000。
  • 输出说明
    输出用这些数构造Huffman树的总费用。
  • 输入范例
5 5 3 8 2 9
  • 输出范例
59

解题思路

  • 本题思路是利用 贪心算法 + 最小堆(优先队列) 来模拟 Huffman 树的构造过程。根据 Huffman 树的性质,每次都需要从当前数列中选择 最小的两个数 进行合并,并将它们的和重新加入数列,同时把这次合并的值计入总费用。为了高效地反复找到最小的两个数,可以使用 最小堆(priority_queue) 存储所有权值。首先将输入的 n 个数全部放入最小堆中,然后不断执行以下操作:从堆中取出最小的两个数 a 和 b,计算它们的和 a+b,将该值加入总费用,并把 a+b 再放回堆中。重复该过程直到堆中只剩下一个数为止,此时累计得到的费用之和就是构造 Huffman 树的总费用。由于每次都选择当前最小的两个数进行合并,可以保证最终总费用最小,这正是 Huffman 树构造的贪心策略。

整体代码

#include<iostream>#include<queue>usingnamespacestd;intmain(){intn;cin>>n;priority_queue<int,vector<int>,greater<int>>pq;for(inti=0;i<n;i++){intx;cin>>x;pq.push(x);}intans=0;while(pq.size()>1){inta=pq.top();pq.pop();intb=pq.top();pq.pop();intsum=a+b;ans+=sum;pq.push(sum);}cout<<ans<<endl;return0;}

注意事项

  • 注意优先队列要使用最小堆,C++ 默认是 最大堆:priority_queue< int >
    必须写成:priority_queue< int, vector< int >, greater< int > >才是 最小堆。。

英文段落翻译

自己翻译

2.游戏控制台
针对玩电脑游戏的设备,包括索尼的PS,任天堂的Wii和微软的Xbox。他们以有利的处理能力和优秀的图像能力为特征,但是他们都大体上被用来致力于打游戏和流播视频,而不是运行应用软件。

3.便携式媒体播放器
媒体播放器,例如iPod touch,通过提供给消费者一个手持的能够存储和播放数千首歌曲的设备使得音乐市场进化了。这些设备都是通过触摸屏或者简单的点按式选盘机制进行控制的。

4.智能手表
手表和钟表是最先数字化的设备的一部分
。大部分在1970年代以一个低至十美元的价格生产,这些手表仅仅只有时间和日期的功能。在2013年,三星,谷歌和高通公司推出了一个数字手表的新的流派。叫做智能手表,这些多功能的设备包括一个相机,温度传感器,指南针计算器,移动电话,GPS,多媒体播放器,还有健康监测器。一些智能手表的功能是表现在设备上的,然而其他功能要求连接到网络或者连接到穿戴者的智能手表。

AI翻译

2 . 游戏主机
用于玩计算机游戏的设备包括索尼的 PlayStation、任天堂的 Wii 以及微软的 Xbox。它们拥有强大的处理能力和卓越的图形性能,但通常专用于游戏娱乐和视频流媒体播放,而非运行应用软件。

3 . 便携式媒体播放器
诸如 iPod touch 之类的媒体播放器,通过为消费者提供能够存储并播放数千首歌曲的手持设备,彻底改变了音乐产业。这些设备通过触摸屏或简单的点按式转盘进行操控。

4 . 智能手表
手表和时钟是最早实现数字化的设备之一。20 世纪 70 年代大规模生产时,这些手表价格低至 10 美元,功能仅限于显示时间和日期。2013 年,三星、谷歌和高通推出了一款新型数字手表。这些被称为智能手表的多功能设备,可以集成摄像头、温度计、指南针、计算器、手机、GPS、媒体播放器和健身追踪器。部分智能手表功能内置在设备本身,而其他功能则需要接入互联网或连接佩戴者的智能手机。

单词打卡

下一篇

待续

http://www.jsqmd.com/news/453420/

相关文章:

  • openClaw 10个必装开荒 Skills
  • 说说信誉好的国际搬家公司,程锦国际到美国纽约靠谱吗费用多少 - 工业品网
  • what(): EGL error 0x300c at eglBindAPI 已放弃 (核心已转储)
  • 深入解析:Python 数据分析进阶:统计分析与假设检验
  • UNIT-00:Berserk Interface 助力软件测试:用例生成与缺陷报告分析
  • L1-018 大笨钟(分数10)
  • 2026年香港装修设计费用盘点,盛世設計怎么样价格贵不贵 - myqiye
  • 打开网站显示Not Found错误是域名没绑定错误怎么办|已解决
  • 一键去除网页BOM属性【解决网站乱码,程序头部空白,后台验证码不显示问题】
  • 实用指南:【LinuxAnsible】学习笔记合集三
  • 图图的嗨丝造相-Z-Image-Turbo镜像免配置实战:无需conda/pip,直接运行Gradio WebUI
  • 2026年知名的RX气公司推荐:RX气发生炉/RX气变成炉/退火炉专用RX气发生器厂家推荐 - 行业平台推荐
  • 2026年香港装修公司排名,香港盛世設計性价比突出值得考虑 - myqiye
  • 2026年垃圾站设备厂家推荐排行榜:地埋式/移动式/压缩式/水平式/垂直式/分体式/景观分类式全系列深度解析与选购指南 - 品牌企业推荐师(官方)
  • 2026年靠谱的RX气品牌推荐:RX气变成炉厂家精选 - 行业平台推荐
  • 2026年好用的自粘袋批发公司推荐,满足你的多样需求 - 工业推荐榜
  • 分析2026年专业电子竞技培训,贵阳新华电脑学校费用怎么收 - 工业推荐榜
  • 打开网站显示HTTP 错误 403.14-Forbidden错误怎么办|已解决
  • 2026年汕头盲盒玩具定制厂家哪家好,优质厂家大盘点 - 工业设备
  • 铝型材围栏定制哪家强?2026年口碑厂家大揭秘,铝型材框架/欧标铝型材/铝型材踏步台,铝型材围栏定制厂家哪家好 - 品牌推荐师
  • 如何让系统扛住高并发流量
  • 霞浦客厅沙发正规厂商怎么选,靠谱品牌盘点 - 工业品牌热点
  • 2026年水处理设备生产厂家推荐:深度解析行业标杆与优选方案 - 深度智识库
  • lite-avatar形象库详细步骤:如何在OpenAvatarChat中加载20250612批次职业形象
  • 2026年口碑好的国际搬家专业公司汇总,价格实惠且靠谱 - 工业品网
  • 2026年超纯水处理设备生产厂家推荐:TOP5推荐榜深度解析与选择指南 - 深度智识库
  • 2026年广州口碑不错的自粘袋定制价格多少,泓信塑料费用透明 - mypinpai
  • 题解:P15586 [KTSC 2026] 五万酱汁 / 50,000 Sauces
  • 2026振动传感器优质之选,推荐这些生产厂家,惯性导航系统(INS)/激光雷达,振动传感器实力厂家口碑推荐 - 品牌推荐师
  • 业内推荐:好氧活性污泥处理优质厂商综合解析,好氧活性污泥源头厂家优质企业盘点及核心优势详细解读 - 品牌推荐师