NYOJ 55 (优先队列)

本文展示了一个使用C++标准库中的优先队列(priority_queue)来解决特定问题的实例。通过代码示例,详细介绍了如何定义和操作优先队列,包括元素的插入、删除以及堆顶元素的获取等关键操作。
View Code
 1 #include<iostream>
2 #include<cstdio>
3 #include<queue>
4 using namespace std;
5 priority_queue <int ,vector<int>,greater<int> > q;
6 int main()
7 {
8 int t,n,x,y,sum;
9 int i;
10 scanf("%d",&t);
11 while(t--)
12 {
13 while(!q.empty())q.pop();
14 sum=0;
15 scanf("%d",&n);
16 for(i=0;i<n;++i)
17 {
18 scanf("%d",&x);
19 q.push(x);
20 }
21 while(!q.empty())
22 {
23 x=q.top();//注意是q.top()
24 q.pop();
25 if(q.empty())break;
26 y=q.top();
27 q.pop();
28 sum+=x+y;
29 q.push(x+y);
30 }
31 printf("%d\n",sum);
32 }
33 system("pause");
34 return 0;
35 }

 

转载于:https://www.cnblogs.com/zhixingqiezhixing/archive/2012/02/18/2356667.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值