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

Posted hello_OK

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了892A. Greed#贪婪(优先队列priority_queue)相关的知识,希望对你有一定的参考价值。

题目出处: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”去百度

以上是关于892A. Greed#贪婪(优先队列priority_queue)的主要内容,如果未能解决你的问题,请参考以下文章

恐惧贪婪指数(Fear & Greed Index)

使用优先队列对链表进行排序

java PriorityQueue优先级队列使用

优先队列不打印推入其中的值[关闭]

PriorityQueue(优先级队列总结)

分段错误:在 C 中实现优先级队列