【jzoj5346】【NOIP2017提高A组模拟9.5】【NYG的背包】【贪心】
2017-09-06 22:15
621 查看
description
solution
考虑贡献为正的,显然花费a最少先做,考虑贡献为负的,可以将ab调转过来,那显然花费最少的先做,也就是b最小的先做。
code
#include<cstdio> #include<cmath> #include<cstring> #include<algorithm> #define LF double #define LL long long #define ULL unsigned int #define fo(i,j,k) for(int i=j;i<=k;i++) #define fd(i,j,k) for(int i=j;i>=k;i--) #define fr(i,j) for(int i=begin[j];i;i=next[i]) using namespace std; int const mn=1e5+2; int t,n; LL v; struct rec{ int p,w; }; rec a[mn]; bool cmp(rec x,rec y){ return ((x.w-x.p>=0)&&(y.w-y.p>=0)&&(x.p<y.p)) ||((x.w-x.p>=0)&&(y.w-y.p<0)) ||((x.w-x.p<0)&&(y.w-y.p<0)&&(x.w>y.w)); } int main(){ freopen("backpack.in","r",stdin); freopen("backpack.out","w",stdout); scanf("%d",&t); fo(cas,1,t){ scanf("%d%lld",&n,&v); fo(i,1,n)scanf("%d%d",&a[i].p,&a[i].w); sort(a+1,a+n+1,cmp); fo(i,1,n)if(a[i].p<=v)v+=a[i].w-a[i].p; else{v=-1;break;} if(v!=-1)printf("Yes\n"); else printf("No\n"); } return 0; }
相关文章推荐
- JZOJ5400. 【NOIP2017提高A组模拟10.7】Repulsed 树型DP+贪心
- JZOJ5372. 【NOIP2017提高A组模拟9.17】猫 链表+贪心+堆优化
- JZOJ 5347. 【NOIP2017提高A组模拟9.5】遥远的金字塔
- 【JZOJ5287】【NOIP2017提高组模拟】最短路
- 【JZOJ5330】【NOIP2017提高A组模拟8.22】密码【51nod1569】二项式系数的个数
- jzoj5336 【NOIP2017提高A组模拟8.24】提米树 (dfs序dp,奇异姿势dp)
- 【jzoj5338】【NOIP2017提高A组模拟8.25】【影子】【点分治】
- JZOJ 5386. 【NOIP2017提高A组模拟9.23】碎
- jzoj5347. 【NOIP2017提高A组模拟9.5】遥远的金字塔 容斥
- 【JZOJ 5390】【NOIP2017提高A组模拟9.26】逗气
- jzoj5249 【NOIP2017提高A组模拟8.10】文本编辑器 (序列修改类问题,数据结构)
- JZOJ5184. 【NOIP2017提高组模拟6.29】Gift
- JZOJ5398. 【NOIP2017提高A组模拟10.7】Adore
- JZOJ5358. 【NOIP2017提高A组模拟9.12】BBQ
- 求hack or 证明(【JZOJ 4923】 【NOIP2017提高组模拟12.17】巧克力狂欢)
- 【JZOJ4930】【NOIP2017提高组模拟12.18】C
- 【JZOJ 4931】【NOIP2017提高组模拟12.24】A
- JZOJ100043. 【NOIP2017提高A组模拟7.13】第K小数
- JZOJ 100047. 【NOIP2017提高A组模拟7.14】基因变异
- JZOJ5354. 【NOIP2017提高A组模拟9.9】导弹拦截