news 2026/5/1 7:19:20

2025年中南大学计算机考研复试机试真题(附 AC 代码 + 解题思路)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2025年中南大学计算机考研复试机试真题(附 AC 代码 + 解题思路)

2025年中南大学计算机考研复试机试真题

2025年中南大学计算机考研复试上机真题

历年中南大学计算机考研复试上机真题

历年中南大学计算机考研复试机试真题

更多学校题目开源地址:https://gitcode.com/verticallimit1/noobdream

N 诺 DreamJudge 题库:输入 “学校名称” 即可筛选该校历年机试真题,题目均在考纲范围内,按难度自动排序。还可搭配《计算机考研机试攻略》刷题,书中题目可通过题号直接在题库中查找。

合并果子

题目描述

Time Limit: 1000 ms
Memory Limit: 256 mb

在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。 因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。 例如有3种果子,数目依次为1,2,9。可以先将1、2堆合并,新堆数目为3,耗费体力为3。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。所以多多总共耗费体力=3+12=15。可以证明15为最小的体力耗费值。

输入输出格式
输入描述:

输入包括两行,第一行是一个整数n(1<=n<=10000),表示果子的种类数。第二行包含n个整数,用空格分隔,第i个整数ai(1<=ai<=20000)是第i种果子的数目。

输出描述:

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

输入输出样例
输入样例#:
3 1 2 9
输出样例#:
15

代码一

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4. priority_queue<int,vector<int>,greater<int>> q;
  5. int n;
  6. cin>>n;
  7. int a;
  8. while(n--){
  9. cin>>a;
  10. q.push(a);
  11. }
  12. int s=0;
  13. while(q.size()>1){
  14. int m1=q.top();
  15. q.pop();
  16. int m2=q.top();
  17. q.pop();
  18. s+=m1+m2;
  19. q.push(m1+m2);
  20. }
  21. cout<<s;
  22. }

代码二

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4. int n;
  5. cin>>n;
  6. auto cmp=[](const int a,const int b){
  7. return a>b;
  8. };
  9. priority_queue<int,vector<int>,decltype(cmp)>pq(cmp);
  10. while(n--){
  11. int num;
  12. cin>>num;
  13. pq.push(num);
  14. }
  15. int ans=0;
  16. while(!pq.empty()){
  17. int a=pq.top();
  18. pq.pop();
  19. if(pq.empty()){
  20. break;
  21. }
  22. int b=pq.top();
  23. pq.pop();
  24. int res=a+b;
  25. ans+=res;
  26. pq.push(res);
  27. }
  28. cout<<ans;
  29. }

代码三

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4. priority_queue<int,vector<int>,greater<int>> pq;
  5. int n;
  6. int sum=0;
  7. cin>>n;
  8. vector<int> m(n);
  9. for(int i=0;i<n;i++){
  10. cin>>m[i];
  11. pq.push(m[i]);
  12. }
  13. while(pq.size()!=1){
  14. int num1=pq.top();
  15. pq.pop();
  16. int num2=pq.top();
  17. pq.pop();
  18. sum=sum+num1+num2;
  19. pq.push(num1+num2);
  20. }
  21. cout<<sum;
  22. }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/10 21:22:16

龙芯双周会--硬核的技术讨论会

龙芯爱好者社区创立于 2024 年 10 月 24 日程序员节&#xff0c;是一个由第三方爱好者、行业人员与学生组成的&#xff0c;致力于龙芯&#xff08;龙架构&#xff09;软硬件生态建设的互联网社区。 “龙芯双周会”是“龙芯爱好者社区”每两周举办的一次技术交流。在这里没有领…

作者头像 李华
网站建设 2026/4/28 17:24:28

从零到上线:Open-AutoGLM在Windows 10/11的完整部署路径(附脚本工具包)

第一章&#xff1a;Open-AutoGLM部署概述Open-AutoGLM 是一个开源的自动化通用语言模型推理与部署框架&#xff0c;旨在简化大语言模型在生产环境中的集成流程。该框架支持多种后端引擎、动态批处理、模型量化以及 REST/gRPC 接口暴露&#xff0c;适用于高并发、低延迟的 AI 服…

作者头像 李华
网站建设 2026/4/16 16:15:04

如何评估一个公司的测试文化和技术水平?

测试作为核心竞争力的时代‌ 在2025年的今天&#xff0c;软件质量已直接关乎企业的生存与发展。敏捷、DevOps、持续交付等范式普及&#xff0c;使得测试不再仅是开发流程的末端环节&#xff0c;而是贯穿价值交付全程的核心保障与反馈机制。因此&#xff0c;评估一个公司的测试…

作者头像 李华