您的位置:首页 > 其它

ZOJ_2339_Hyperhuffman

2016-04-02 17:35 302 查看
#include<iostream>

#include<sstream>

#include<string>

#include<vector>

#include<list>

#include<set>

#include<map>

#include<stack>

#include<queue>

#pragma warning(disable:4996)

using std::cin;

using std::cout;

using std::endl;

using std::stringstream;

using std::string;

using std::vector;

using std::list;

using std::pair;

using std::set;

using std::multiset;

using std::map;

using std::multimap;

using std::stack;

using std::queue;

using std::priority_queue;

class compare

{

public:

bool operator()(const long long &a, const long long &b)

{

return a>b;

}

};

int main()

{

//freopen("input.txt", "r", stdin);

//freopen("output.txt", "w", stdout);

int T; cin >> T;

while (T--)

{

int n; cin >> n;

priority_queue<long long, vector<long long>, compare>Q;

while (n--)

{

long long value; cin >> value;

Q.push(value);

}

long long cost = 0;

while (Q.size() > 1)

{

long long first = Q.top(); Q.pop();

long long second = Q.top(); Q.pop();

Q.push(first + second);

cost += first + second;

}

cout << cost << endl;

if (T)

{

cout << endl;

}

}

return 0;

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