文章

10

粉丝

55

获赞

3

访问

2.9k

头像
哈夫曼树 题解:最小栈做法
P1382 北京邮电大学/兰州大学2019年机试
发布于2024年3月13日 17:09
阅读数 229

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n, x;
    while(cin>>n){
    priority_queue<int, vector<int>, greater<int>> q; // 定义存储整数的最小堆
    for (int i = 0; i < n; i++) {
        cin >> x;
        q.push(x);
    }
    int ans = 0;
    while (q.size() > 1) {
        int num1 = q.top();
        q.pop();
        int num2 = q.top();
        q.pop();
        ans += num1 + num2;
        q.push(num1 + num2);
    }
    cout << ans<<endl;;
    }
    return 0;
}

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发