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

P2-2017级算法第二次上机 B 女娲加农炮

题目描述

(请不要带着科学的视角去看待题干故事,因为这本来就是以游戏为背景的)

女娲加农炮是中国阵营的专属T3战车单位。这种装备了250mm口径核裂变重磅炮的钢铁巨兽是一种极为恐怖的屠戮机器,常常被安置在中国大批机械化部队的最前端,形成一堵坚不可摧、势不可挡的钢铁长城。

表面上女娲加农炮是由东北重工集团研制而成,但事实上,东北重工只进行了方案论证和实车建造,女娲加农炮真正的缔造者,是来自中国的天才科学家芸如。

现在芸如想化核裂变为核聚变,从而让女娲加农炮的火力再上一层楼。已知有N种不同的原子核(这里请忽略自然界原子核的种类上限),第i种原子核的重量为a[i]

将两种原子核聚合在一起,消耗的能量等于两种原子核的重量之和。在经过n-1次聚合之后,聚合完成。芸如想使整个聚合过程消耗的能量最小,请求出这个最小的能量值。

输入

多组数据输入,第一个数为原子核的种类N。(N<=1e6

接下来N个整数,代表N种原子核的重量。(在int范围内并用空格隔开)

输出

对于每组数据,输出一行,为聚合过程能量消耗的最小值。(保证结果在int范围内)

输入样例

4

1 2 3 4

输出样例

19

思路

利用优先队列,每次将最小的两个从优先队列中取出并加和,然后将加和之后的元素重新放回优先队列并维护即可。最后输出累加值即为所求。

参考代码

 1 #include<iostream>  
 2 #include<cstdio>  
 3 #include<algorithm>  
 4 #include<queue>  
 5 using namespace std;  
 6 priority_queue<int,vector<int>,greater<int> >q;  
 7 int main()  
 8 {  
 9     int N;  
10     while(scanf("%d",&N) == 1){  
11         //优先队列  
12         while(!q.empty())  
13             q.pop();  
14         int res = 0,weight;  
15         for(int i = 0;i < N;i++){  
16              scanf("%d",&weight);  
17              q.push(weight);  
18         }  
19         for(int i = 1;i < N;i++){  
20             int first = q.top();  
21             q.pop();  
22             int second = q.top();  
23             q.pop();  
24             q.push(first+second);  
25             res += first + second;  
26         }  
27         printf("%d\n",res);  
28     }  
29 }  

 

转载于:https://www.cnblogs.com/zjsyzmx0527/p/10182806.html

相关文章:

  • 很好的学习平台
  • 前言-如何学习区块链
  • 移除孤立的或已删除的链接克隆
  • Windows 8.1 Windows Phone 8.1 通用程序
  • HowTos/Virtualization/VirtualBox - CentOS Wiki
  • MySQL 运维笔记(一)—— 终止高负载SQL
  • Kubernetes部署(九):CoreDNS、Dashboard、Ingress部署
  • ES6 Promise
  • 什么是字符串常量池
  • Shell实战训练营Day11
  • java并发处理 (同步与原子性)
  • Java入门项目:学生信息管理系统V2
  • IE6不支持a标签以外元素的hover的解决方案
  • 40个Java多线程问题详解复习
  • 【Linux】目录权限与文件权限
  • 分享一款快速APP功能测试工具
  • $translatePartialLoader加载失败及解决方式
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Babel配置的不完全指南
  • co模块的前端实现
  • Idea+maven+scala构建包并在spark on yarn 运行
  • JS专题之继承
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • php ci框架整合银盛支付
  • Python利用正则抓取网页内容保存到本地
  • 程序员最讨厌的9句话,你可有补充?
  • 订阅Forge Viewer所有的事件
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 微信公众号开发小记——5.python微信红包
  • ###C语言程序设计-----C语言学习(3)#
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • $jQuery 重写Alert样式方法
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (1)SpringCloud 整合Python
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (solr系列:一)使用tomcat部署solr服务
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (三)mysql_MYSQL(三)
  • (十六)一篇文章学会Java的常用API
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)Oracle 9i 数据库设计指引全集(1)
  • .net core Swagger 过滤部分Api
  • .net core webapi 大文件上传到wwwroot文件夹
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET HttpWebRequest、WebClient、HttpClient
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET程序员迈向卓越的必由之路
  • .NET命名规范和开发约定
  • .net中的Queue和Stack
  • [ CTF ] WriteUp-2022年春秋杯网络安全联赛-冬季赛
  • [AX]AX2012 R2 出差申请和支出报告