UESTC1599-wtmsb-优先队列
2024-08-24 17:09:09
wtmsb
Time Limit: 1000/100MS (Java/Others)
Memory Limit: 131072/131072KB (Java/Others)
这天,AutSky_JadeKAutSky_JadeK 看到了n张图片,他忍不住说道:“我TM 社保!”。
每张图片有一个社保值,他可以合并两张图片,合并所得的图片的社保值是原来两张图片的社保值之和。
每次合并需要消耗的体力也是原来两张图片的社保值之和。 显然,n−1n−1
次合并之后,只剩下一张图片。
他想知道,在这个过程中,他消耗的总体力最少是多少。
Input
第一行包含一个整数n
,
第二行包含n
个整数A1,A2,…,An
,代表n
张图片的社保值。
Output
输出一行,包含一个整数,代表他消耗的总体力最少是多少。
Sample input and output
Sample Input | Sample Output |
---|---|
3 |
15 |
Hint
1≤n≤200001≤n≤20000 ,
1≤Ai≤2000
题意就是求和,一开始没搞懂题意,后来想明白了,就拿数据来说,1+2=3,再把3扔回去,3+9=12,所以就是3+12=15。
然而自己按自己想的写了一个(没有技术含量可言(;´д`)ゞ),样例啊,自己随便给的数据也都过了,但是交上就wa了,搞不清为什么。优先队列,要用这个写。
代码:
#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
typedef long long ll;
const int N=2e4+;
priority_queue<ll,vector<ll>,greater<ll> > gg;
int main(){
int n,a,i,b;
ll ans=;
scanf("%d",&n);
for(i=;i<n;i++){
scanf("%d",&a);gg.push(a);
}
int len=gg.size();
while(len>=){
a=gg.top();gg.pop();
b=gg.top();gg.pop();
a=a+b;ans+=a;
gg.push(a);len--;
}
printf("%lld\n",ans);
return ;
}
有点难过(╯°Д°)╯︵┻━┻
最新文章
- .NET跨平台之旅:探秘 dotnet run 如何运行 .NET Core 应用程序
- Java接口之间的继承
- CentOS6 配置
- HDU 4274 Spy&#39;s Work (树 DFS)
- DataTable 修改列名 删除列 调整列顺序
- JavaWeb-11 (JSP&;amp;EL表达)
- ImageLoader的使用
- SVN和Git的一些用法总结
- 利用linux shell自己主动顶贴
- JavaScript数据结构和算法----栈
- I/O-----字符输入流
- vue搭建app, M端项目流程
- nginx ../logs/nginx.pid"; failed (2: No such file or directory)
- Operation not permitted
- 南大算法设计与分析课程OJ答案代码(2)最大子序列和问题、所有的逆序对
- Redis之过期时间
- go 字符串反转(倒序)
- java结合使用Jsonp的例子
- 解决js中文输入法无法触发onkeyup事件问题(转)
- 在SourceTree中使用Git submodule
热门文章
- MySQL 如何执行关联查询
- CDH的安装
- Linux(CentOS6.5)下编译安装MySQL Community Server 5.7.12
- Generation Axe 吉他之夜音乐会-广州站 感受
- Android 7.1 ActivityManagerService 屏幕旋转流程分析 (四)
- windows安装ipython的困难重重
- Effective Java 第三版——16.在公共类中使用访问方法而不是公共属性
- (译)Web是如何工作的(3):HTTP&;REST
- django之admin流程
- Java 与C++的各种优势与弱点--学习更新中