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”去百度
个人分享,欢迎指导,未经允许,请勿转载。谢谢!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步