您的位置:首页 > 产品设计 > UI/UE

892A. Greed#贪婪(优先队列priority_queue)

2017-12-17 15:43 253 查看
题目出处:http://codeforces.com/problemset/problem/892/A

题目大意:有一些可乐(不一定装满),问能不能把所有可乐装进两个可乐瓶中

#include<iostream>
#include<queue>
#include<vector>
using namespace std;
int main(){
priority_queue< long long,vector<long long >,less<long long > >cap;
long long n;    cin>>n;
long long  sum=0;
for(long long  i=0;i<n;i++){
long long  rem; cin>>rem;
sum+=rem;
}
while(n--){
long long vol; cin>>vol;
cap.push(vol);
}
long long  sumt = cap.top(); cap.pop();
sumt+=cap.top();
if(sum>sumt)cout<<"NO"<<endl;
else cout<<"YES"<<endl;
return 0;
}


只需要对剩余的可乐加和与最大的容积的两个可乐瓶容积加和比较即可

关键在于如何获取两个最大容积

暴力可以遍历一次之后,获得最大的一个,然后去掉这个,再遍历一次,再获得第二大的,加和

我们使用最大优先队列priority_queue();头文件#include<queue>

关于优先队列可以问度娘,建议加上“STL”去百度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: