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

算法题(154):合并果子

审题:
本题需要我们找到多多消耗的最小体力值

思路:
方法一:哈夫曼树

由于题目中说多多最终需要把很多堆的果子移动为一堆(类似哈夫曼树的构建过程),且他消耗的体力是移动果子的重量之和,消耗的体力值需要最小(符合哈夫曼树的带权路径计算,哈夫曼树可以让带权路径和最小)

解题:
 

#include<iostream>
#include<vector>
#include<queue>
using namespace std;
typedef long long ll;
int n;
priority_queue<ll,vector<ll>,greater<ll>> a;
int main()
{//数据录入cin >> n;for (int i = 1; i <= n; i++){ll x = 0;cin >> x;a.push(x);}//哈夫曼树构造ll answer = 0;while (a.size() != 1){ll b = a.top(); a.pop();ll c = a.top(); a.pop();answer += b + c;a.push(b + c);}cout << answer << endl;return 0;
}

本题没有需要改动的地方,和模板题哈夫曼编码基本一致,所以不做详细讲解

P1090 [NOIP 2004 提高组] 合并果子 - 洛谷

http://www.xdnf.cn/news/8726.html

相关文章:

  • 鸿蒙密码生成器开发笔记
  • C++ 正则表达式简介
  • 广东省省考备考(第十九天5.24)—申论(听课后强化训练)
  • docker虚拟化、容器化
  • 轻量化开源方案——浅析PdfPatcher实际应用
  • 21 程序控制语句详解:循环控制(while、do-while、for、循环机制与原理、嵌套循环)
  • 【深度学习新浪潮】如何用Dify构建自己的AI Agent?
  • 通过设备节点获取已注册的 i2c client
  • P8943 Deception Point
  • 单片机中断系统工作原理及定时器中断应用
  • python下通过wmic设置程序的优先级~~~
  • Java程序员高效视频学习指南
  • 战略-2.1 -战略分析(PEST/五力模型/成功关键因素)
  • C++ 类型转换
  • uni-app学习笔记十--vu3 computed的运用(一)
  • VMware Flings又又又搬家了
  • 嵌入式软件-如何做好一份技术文档?
  • esp32 lvgl9.2版本,透明底色图片的,透明部分被渲染成黑色,不随背景颜色变化解决办法
  • 从零开始:Python语言进阶之多态
  • Filament引擎(二) ——引擎的调用及接口层核心对象
  • 在Linux上安装Miniconda
  • leetcode438.找到字符串中所有字母异位词
  • Python之两个爬虫案例实战(澎湃新闻+网易每日简报):附源码+解释
  • 力扣 54 .螺旋矩阵
  • 148. 排序链表
  • 40-智慧医疗服务平台(在线接/问诊/机器学习)
  • 电工杯数学建模竞赛a题完整参考文章
  • C++魔法药水的配方 全国信息素养大赛复赛决赛 C++小学/初中组 算法创意实践挑战赛 内部集训模拟题详细解析
  • 深度学习模型在PDE求解中的实战:详细综述
  • 电磁场与电场、磁场的关系