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;
}
相关文章推荐
- MFC快速入门-hello world
- C语言宏定义
- EXE和DLL互相调用
- 通过多播实现局域网上线用户列表 c++实现
- 看开源代码利器—用Graphviz + CodeViz生成C/C++函数调用图(call graph)
- 自行编写strcpy()函数和memcpy()函数
- 11个强大的Visual Studio调试小技巧
- 二叉排序树的c++实现,查找,删除等
- C++ this指针的理解
- 漫谈C++:良好的编程习惯与编程要点
- 常用的字符串和数字之间的转换函数
- c++ primer 读书笔记
- 自行编写strcpy()函数
- 【C语言】合并,排序两个链表
- C++学习随笔
- 如何利用c++编写不能被继承、但可以在类外定义对象的类
- 列出100个质数
- C++之常量(一)
- C语言 大小端 字节对齐
- C++单例模式getInstance()——设计模式(1)