news 2026/4/20 16:54:17

题解:学而思编程 合并果子

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
题解:学而思编程 合并果子

本文分享的必刷题目是从蓝桥云课洛谷AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。

欢迎大家订阅我的专栏:算法题解:C++与Python实现!

附上汇总贴:算法竞赛备考冲刺必刷题(C++) | 汇总


【题目来源】

合并果子

【题目描述】

在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆.

每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和.可以看出,所有的果子经过n − 1 n−1n1次合并之后,就只剩下一堆了.多多在合并果子时总共消耗的体力等于每次合并所耗体力之和.

因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力.假定每个果子重量都为11,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值.

例如有3 33种果子,数目依次为1 , 2 , 9 1,2,91,2,9.可以先将1 , 2 1,21,2堆合并,新堆数目为3 33,耗费体力为3 33.

接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12 1212耗费体力为12 1212.所以多多总共耗费体力= 3 + 12 = 15 =3+12=15=3+12=15.可以证明15 1515为最小的体力耗费值.

【输入】

第一行是一个整数n ( 1 ≤ n ≤ 10000 ) n(1≤n≤10000)n(1n10000),表示果子的种类数.

第二行包含n nn个整数,用空格分割,第i ii个整数a i ( 1 ≤ a i ≤ 20000 ) a_i(1≤a_i≤20000)ai(1ai20000)是第i ii种果子的数目.

【输出】

包含一行,这一行只包含一个整数,也就是最小的体力耗费值.输入数据保证这个值小于2 31 2^{31}231.

【输入样例】

3 1 2 9

【输出样例】

15

【算法标签】

#堆排序#

【代码详解】

#include<queue>#include<cstring>#include<iostream>#include<algorithm>usingnamespacestd;intn,x,sum;// sum: 总合并代价priority_queue<int,vector<int>,greater<int>>q;// 小根堆intmain(){cin>>n;for(inti=1;i<=n;i++){cin>>x;q.push(x);// 将所有数插入小根堆}// cout<<q.top()<<endl;// 哈夫曼编码/合并果子算法for(inti=1;i<n;i++){intx1=q.top();// 取出最小的q.pop();intx2=q.top();// 取出次小的q.pop();sum+=x1+x2;// 累加合并代价q.push(x1+x2);// 将合并结果放回堆中}cout<<sum;return0;}

【运行结果】

3 1 2 9 15
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 16:50:13

Android设备搭建本地RTSP服务器(基于live)

整体排查思路 我们的目标是验证以下三个环节是否正常&#xff1a; 登录成功时&#xff1a;服务器是否正确生成了Session并返回了包含正确 JSESSIONID的Cookie给浏览器。 浏览器端&#xff1a;浏览器是否成功接收并存储了该Cookie。 后续请求&#xff1a;浏览器在执行查询等操作…

作者头像 李华
网站建设 2026/4/20 16:45:48

【创新未发表】【故障诊断】基于连续小波变换-CNN, ResNet, CNN-SVM, CNN-BiGRU, CNN-LSTM的故障诊断研究【凯斯西储大学数据】附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…

作者头像 李华
网站建设 2026/4/20 16:45:40

10.2.4 服务账户(Service accounts):为什么“服务能不能运行”和“服务该以谁的身份运行”,是两个完全不同层级的问题?

&#x1f525;个人主页&#xff1a;杨利杰YJlio❄️个人专栏&#xff1a;《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》 《那些年未解决的Windows疑难杂症》&#x1f31f; 让复杂的事情更…

作者头像 李华
网站建设 2026/4/20 16:44:36

从零搭建本地数据库环境:MySQL 安装、配置与多端开发实战指南

引言在开发服务类型分类管理系统&#xff08;如挖机服务、吊机服务的子类维修分类管理&#xff09;时&#xff0c;本地数据库是不可或缺的测试环境。然而&#xff0c;许多新手开发者常因数据库安装失败、配置错误或连接问题导致开发受阻。本文将以 MySQL 为例&#xff0c;结合 …

作者头像 李华