合并果子

简介: 合并果子


题目描述

输入

输出

样例输入1

3

1 2 9

样例输出1

15

做法1

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n;
    cin >> n;
    /* 默认的PQ是从大到小弹出的 我们重载小于号为greater<int> 即从小到大弹出 */
    priority_queue<int, deque<int>, greater<int>> pq;
    while (n--) {
        int tmp;
        cin >> tmp;
        pq.push(tmp);
    }
    int ans = 0;
    /* 最后一个元素不参与合并 */
    while (pq.size() > 1) {
        int t1 = pq.top();
        pq.pop();
        int t2 = pq.top();
        pq.pop();
        ans += t1 + t2;
        pq.push(t1 + t2);
    }
    cout << ans << endl;
    return 0;
}
相关文章
|
7月前
|
算法 搜索推荐 数据可视化
【漫画算法】插入排序:插入宝石的传说
【漫画算法】插入排序:插入宝石的传说
|
7月前
|
存储 算法
leetcode题解:88.合并有序数组
leetcode题解:88.合并有序数组
30 0
|
8月前
|
JavaScript
线性dp之石子合并
线性dp之石子合并
|
8月前
|
人工智能
合并果子(哈夫曼树)NOIP2004提高组
合并果子(哈夫曼树)NOIP2004提高组
|
人工智能 算法 C++
洛谷 P1090 合并果子(贪心)
洛谷 P1090 合并果子(贪心)
150 0
|
8月前
|
人工智能 算法
合并果子(优先级队列)
合并果子(优先级队列)
55 0
|
8月前
|
算法 搜索推荐 Java
算法编程(四):合并两个有序数组
算法编程(四):合并两个有序数组
81 0
|
人工智能
1369:合并果子(fruit)
1369:合并果子(fruit)
115 0