您的位置:首页 > 编程语言 > C语言/C++

c++ 优先队列

2016-05-27 17:10 225 查看
 

#include<iostream>

#include<queue>

using namespace std;

struct T

{

    friend bool operator < (T a1, T a2)

    {

    return a1.x > a2.x;

    }

    int x;

};

int main()

{

    T a;

    priority_queue<T> q;

    int n, i, j, sum;

    cin>>n;

    for(i = 0; i < n; i++)

    {

        cin>>a.x;

        q.push(a);

    }

    n--;

    sum = 0;

    while(n--)

    {

        i = q.top().x;

        q.pop();

        j = q.top().x;

        q.pop();

        a.x = i+j;

        sum = sum + a.x;

        q.push(a);

    }

    cout<<sum;

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: