Codeforces Round #579 (Div. 3), problem: (F1) Complete the Projects (easy version) 【两次贪心】
发布日期:2021-06-29 14:25:19 浏览次数:2 分类:技术文章

本文共 724 字,大约阅读时间需要 2 分钟。


题目大意

有n个项目,每个项目有个最低要求资格,还有一个价值,会加到自身价值身上,最开始自己有一个价值,然后问是否能做完所有项目,做项目顺序可以自己排


题解

对于价值为正的项目,很明显我们可以直接从小到大的把项目做掉,这样一定是最优的,对于负数来说,我们排差值,差值大的,说明损耗对于自身的损耗较小,这样才能保证自己还有能力做大项目,又能保证做完一个大项目后因为扣的太多而不能去做小项目

#include
using namespace std;int n,r;const int maxn=1e5+5;vector
> v1,v2;int a,b;bool cmp1(const pair
& x,const pair
& y){
return x.first
& x,const pair
& y){ return x.first+x.second>y.first+y.second;}int main(){ scanf("%d %d",&n,&r); for(int i=0;i
p=make_pair(a,b); if(b>=0) v1.push_back(p); else v2.push_back(p); } int flag=1; sort(v1.begin(),v1.end(),cmp1); for(int i=0;i
=0) printf("YES\n"); else printf("NO\n"); return 0;}
学如逆水行舟,不进则退

转载地址:https://chocolate.blog.csdn.net/article/details/100114654 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:2019年(第15届)湖南省大学生计算机程序设计竞赛之【赛前动员暨暑假集训总结】
下一篇:Codeforces Round #579 (Div. 3), problem: (E) Boxers【贪心】

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月23日 15时01分17秒