文章

17

粉丝

43

获赞

10

访问

14.5k

头像
哈夫曼树 题解:优先队列
P1382 北京邮电大学/兰州大学2019年机试
发布于2023年8月9日 19:58
阅读数 797

 合并果子同个思路

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

int main()
{
    int n;
    while(cin>>n)
    {
        int x;
        priority_queue<int,vector<int>,greater<int> > q;//优先队列从小到大排序,从小输出。
        for(int i=0;i<n;i++)
        {
            cin>>x;
            q.push(x);
        }

        int sum=0;
        int a=0,b=0;
        while(q.size()>1)
        {

        a=q.top();
        q.pop();
        b=q.top();
        q.pop();
        q.push(a+b);
        sum=sum+a+b;
        }
        cout<<sum<<endl;




    }


    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发