题解 AT2653 【Snake Toy】
Tomone
2018-04-05 23:08:03
使用优先队列解决这个问题
```
#include<cstdio>
#include<iostream>
#include<queue>
#include<algorithm>
#include<vector>
using namespace std;
priority_queue<int, vector<int>, less<int> > q; //新建一个从大到小的优先队列
int main(){
ios::sync_with_stdio(false); //读入读出优化
int n,m,tmp,ans=0;
cin>>n>>m;
for(int i=0;i<n;++i){
cin>>tmp;
q.push(tmp); //入队
}
for(int i=0;i<m;++i){
ans+=q.top(); //加前m个元素
q.pop();
}
cout<<ans<<endl; //输出
return 0;
}
```
一些优先队列的解析:https://www.aptx.xin/queue.html