UESTC - 1599

Posted 浅忆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UESTC - 1599相关的知识,希望对你有一定的参考价值。

这天,AutSky_JadeKAutSky_JadeK看到了nn张图片,他忍不住说道:“我TMTM社保!”。 
技术分享
每张图片有一个社保值,他可以合并两张图片,合并所得的图片的社保值是原来两张图片的社保值之和。 
每次合并需要消耗的体力也是原来两张图片的社保值之和。 
显然,n?1n?1次合并之后,只剩下一张图片。 
他想知道,在这个过程中,他消耗的总体力最少是多少。

Input

第一行包含一个整数nn, 
第二行包含nn个整数A1,A2,,AnA1,A2,…,An,代表nn张图片的社保值。

Output

输出一行,包含一个整数,代表他消耗的总体力最少是多少。

Sample Input

3
1 2 9

Sample Output

15

Hint

1n200001≤n≤20000, 
1Ai2000

 

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <queue>
 4 using namespace std;
 5 typedef long long LL;
 6 const int MAXN = 2e4 + 8;
 7 
 8 priority_queue<LL, vector<LL>, greater<LL>> pq;
 9 
10 int main()
11 {
12     #ifdef LOCAL
13     freopen("j.txt", "r", stdin);
14     int T = 4;
15     while(T--){
16     #endif
17     int n, a, i, b;
18     LL ans = 0;
19     scanf("%d", &n);
20     for(i = 0; i < n; i++){
21         scanf("%d", &a);
22         pq.push(a);
23     }
24     int sz = pq.size();
25     while(sz >= 2){
26         a = pq.top();
27         pq.pop();
28         b = pq.top();
29         pq.pop();
30         a = a + b;
31         ans += a;
32         pq.push(a);
33         sz--;
34     }
35 
36     cout << ans << endl;
37 
38     #ifdef LOCAL
39     cout << endl;
40     }
41     #endif
42     return 0;
43 }

 








以上是关于UESTC - 1599的主要内容,如果未能解决你的问题,请参考以下文章

UESTC 电子科大专题训练 数据结构 J

UVA-10954 Add All

ACM图论—最小环问题 ( 仔细分析+理解+代码 )(HDU 1599 ) (POJ 1743)

单目标优化求解 基于matlab烟花算法求解单目标问题含Matlab源码 1599期

UESTC 电子科大专题训练 DP-N

UESTC2021暑假前集训(splay树)