Add All UVA - 10954(题目+思路+题解)

题目传送门

首先是题目大意

  • 对一系列数进行有成本的加法运算
  • 求解最小成本

举例说明成本计算:
在这里插入图片描述
对于第一格中,给定数列“1,2,3”,它的最小成本是6。
即每次计算的成本是两数之和,总成本是单次计算的成本之和。

从样例中不难看出,每次从数列中选取最小的两个数相加计入成本即可。但是!!! 应该是 每次 都要选取最小的两个数,而不是采用一开始排好的队列。

所以,一道很经典的哈夫曼树题目 这里采用优先队列来实现Huffman算法。

接下来是对优先队列的用法记录,方便日后复习,可以直接跳过:

STL中的priority_queue
模板:priority_queue<Type, Container, Functional>
Type — 数据类型
Container — 保存容器 //一般为vector或deque,但不能是list 缺省的话默认是vector
Functional — 排序方式 默认降序 //可以用greate<type> 或 less<type>

注:priority_queue很棒的地方就在于它会自动排序,所以用来实现此题就很方便

代码实现:

#include<iostream>
#include<queue>
#include
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值