1351 吃点心

题目来源: TopCoder
基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题
收藏
关注
有N盒点心,这些盒子标号为1,2,...N,你有一次机会选择一些盒子作为你的晚餐,但是每个盒子里点心的数量是未知的,不过有人告诉你一些信息:
1)这些盒子里的点心总和是C个;
2)对于盒子i,其中的点心个数最少有low_i个,最多有high_i个,即low_i<=box_i<=high_i,box_i是第i盒的点心个数。
你选择的方式如下,一次挑出N盒中的若干盒,也就是{1,2,...,N}的一个子集,然后拿走你选出的盒子,再打开它们,到此时你才知道你到底获得了多少个点心。为了吃饱晚餐,你需要吃至少X个点心。请问你需要至少选多少盒点心才能保证一定吃饱?

例如样例中:第一组选第3,4,5三盒,第二组选第1,3两盒。

Input
多组测试数据,第一行一个整数T,表示测试数据数量,1<=T<=5
每组测试数据有相同的结构构成:
每组数据的第一行三个整数N,C,X,表示盒子个数、点心总数、需要的点心个数,其中1<=N<=50,1<=X<=C;
之后N行,每行2个整数low_i,其中 1 <= low_i <= high_i <= 10,000,000,同时保证  SUM{low_i | 1<=i<=N} <=C<= SUM{high_i | 1<=i<=N},即数据确保点心总数与点心上下界的合法性;
Output
每组数据一行输出,即最少需要挑的盒子数量。
Input示例
2
5 15 12
1 1
2 2
3 3
4 4
5 5
3 60 8
5 49
2 48
3 47
Output示例
3
2
///两次贪心  n,c,x;
1. 将最小范围从大到小排序,然后得到他们的和满足x
2. 将最大范围从小到大排序,用总的值c减去他们的和,得到一个剩余范围是满足x ,此时剩余的个数就是
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
struct node
{int a,b;
}p[100000];
bool cmp1(node p1,node p2)
{return p1.a>p2.a;
}
bool cmp2(node p1,node p2)
{return p1.b<p2.b;
}
int main()
{int n,T,c,x;while(~scanf("%d",&T)){while(T--){scanf("%d%d%d",&n,&c,&x);for(int i=0;i<n;i++){scanf("%d%d",&p[i].a,&p[i].b);}sort(p,p+n,cmp1);  ///按最小范围进行计算int sum=0,num1=0;     for(int i=0;i<n;i++){if(sum<x){sum+=p[i].a;num1++;}elsebreak;}sort(p,p+n,cmp2);  ///按最大范围进行计算int num2=n;for(int i=0;i<n;i++)  ///减去最大范围和剩下的值满足x{if(c-p[i].b>=x){c-=p[i].b;num2--;}elsebreak;}printf("%d\n",min(num1,num2));}}return 0;
}

51NOD 1351 吃点心 贪心相关推荐

  1. 51nod 1351 吃点心

    O(n)的算法,数据量居然只有50... 对于选取的若干盒子,有两种情况是符合条件的 1.这些盒子的low和 ≥ x 2.c - 其他盒子的high和 ≥ x 分别进行计算,求较小值即可. #incl ...

  2. 51nod-1351:吃点心

    1351 吃点心 题目来源: TopCoder 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 有N盒点心,这些盒子标号为1,2,...N,你有一次 ...

  3. 试题 算法训练 kAc给糖果你吃(贪心)

    资源限制 时间限制:1.0s   内存限制:256.0MB 问题描述 kAc有n堆糖果,每堆有A[i]个. kAc说你只能拿m次糖果,聪明的你当然想要拿最多的糖果来吃啦啦啦~ //第二天,kAc问你还 ...

  4. 2022暑初二信息竞赛学习成果分享2

    学习目录2 第二期 (2022/07/17~2022/07/23) Day 7:复习&测试--**树状数组** `Morning`--树状数组复习测试 考试"游记" 题目总 ...

  5. 读书笔记 - 说话之道 (蔡康永) - 3(完)

    26 乐在其中,跟长辈"凑趣" 有个女生,是百货公司的专柜小姐,她很懂得"凑趣",所有有独到的功夫,搞得定老一辈人. 会很在乎的问东问西,有的老人是爱抱怨的,有 ...

  6. 员工礼仪培训材料~~精确到如何接电话、如何用餐、如何坐电梯

    1.应有的态度-- 如何在公司赢得好印象?除了在公司内打电话.接电话之类的技巧外,还包括将访客带 到会客室.递出名片与接收名片的方法,以及替别人作介绍..等,各种在商业社会生存所 不可缺少的礼仪. 如 ...

  7. 家长课堂:13妙招有效提升孩子注意力

    孩子注意力不集中怎么办?相信你也常为这个问题而烦恼.孩子的注意力影响到日后宝宝的学习.工作,意义非常大.其实,对于自制力尚不成熟的孩子来说,要达到专心致志的境界是很困难.但是,好习惯需要从小开始培养, ...

  8. 6月书讯 | 唠嗑也能学数学!

    自从人工智能大火之后,一大批人开始争相入行. 与此同时,还带火了一门编程语言,那就是 Python! 当大家兴高采烈地学习 Python ,准备为入门人工智能降低难度时,一个不可忽视的问题出现了,大家 ...

  9. 九种食物帮你赶走忧郁

    [装载] 九种食物帮你赶走忧郁 个人的喜怒哀乐与饮食有着密切的关系,有的食品能够使人快乐.安宁,有的食品则使人悲伤.忧愁.焦虑.愤怒.原因就是人体中一种称为血清素的物质有助于镇定情绪.解除焦虑,有的食 ...

最新文章

  1. 前端 重构时需要注意的事项_驾驶式扫地车的功能特点和使用时需要注意事项...
  2. linux svn 启动两个库,linux – 在一个存储库上运行两个svnserve实例是安全的,还是只有一个?...
  3. 步步为营-72-asp.net简单练习(通过webForm实现一些简单实例)
  4. double类型最大值_Java后端精选基础教程:Java 中的基本数据类型「连载 6」
  5. c语言排序系统代码怎么写,排序概述(c语言)(示例代码)
  6. 06006_redis数据存储类型——String
  7. Dubbo 线上 Thread pool is EXHAUSTED 问题排查
  8. php 中 excel表格判断,PHPexcel自动判断excel类型并读取excel所有sheet内容
  9. DevOps交付模式下,软件测试的那些事
  10. Facebook 又摊上事了,数亿用户被波及!
  11. linux 邮件文件名 病毒,文件型File/Macro病毒的捕获
  12. c++标准程序库:STL容器之vector
  13. html入门(详细描述)2
  14. Spring AOP原理分析(三)-- AnnotationAwareAspectJAutoProxyCreator#initBeanFactory()源码
  15. 1236mysql_mysql报1236错误解决方法
  16. 通信协议晦涩难懂搞不定?看完这些动图恍然大悟
  17. 关于RAM,ROM,EEPROM,FLASH,DDR,CACHE
  18. 闲谈 bypass AV
  19. surface 部分uwp软件无法联网
  20. java写的股票技术分析_基于Java语言开发的个性化股票分析技术:量能突破模型(Energe-Break)...

热门文章

  1. 解决Android11上分享图片失败
  2. 代付系统开发(搭建)【支付宝自动代付】
  3. justify-content、align-content、align-items、align-self的区别
  4. MSM8909读PMIC芯片寄存器
  5. 蓝桥杯刷题之分享或许会迟到,但绝不会缺席
  6. uni-app - 改变数据后视图无更新变化解决方案,更改数据不刷新(解决修改 data 中的数据视图未更新的问题)
  7. DIY大神分享:i7 10700k配什么散热
  8. 1n4007二极管的参数,看完就明白了
  9. citespace学习总结 一、软件的安装
  10. jdb 调试 java_Java逆向基础之JDB动态调试