合并果子(队列)
原题链接:70056.笔记2026-01-28 14:56:33
发布于:广东
#include<bits/stdc++.h>
using namespace std;
priority_queue<int,vector<int>,greater<int> >q;
int n,ans;
int main(){
//入队操作:push();
//出队操作:pop();
//判空(队列名.empty())操作:front==rear;
//判满(full)操作:rear==QMaxSize-1
//队列长度:Qlenth=rear-front;
//获得队头元素:front()
//获得队尾元素:back()
//定义优先队列priority_queue<数据类型>名称
//设置
//top():获取队首元素
//数字越大越优先
//priority_queue<int>q;
//priority_queue<int,vector<int,less<int> >q;
//越小越优先
//priority_queue<int,vector<int>,greater<int> >q;
cin>>n;
for(int i=1;i<=n;i++){
int x;
cin>>x;
q.push(x);
}
while(q.size()>1){
int a=q.top();
q.pop();
int b=q.top();
q.pop();
ans+=a+b;
q.push(a+b);
}
cout<<ans;
return 0;
}
这里空空如也










有帮助,赞一个