http://www.lydsy.com/JudgeOnline/problem.php?id=1707

Time Limit: 5 Sec  Memory Limit: 64 MB
Submit: 828  Solved: 395
[Submit][Status][Discuss]

Description

奶牛们计划着去海滩上享受日光浴。为了避免皮肤被阳光灼伤,所有C(1 <= C <= 2500)头奶牛必须在出门之前在身上抹防晒霜。第i头奶牛适合的最小和最 大的SPF值分别为minSPF_i和maxSPF_i(1 <= minSPF_i <= 1,000; minSPF_i <= maxSPF_i <= 1,000)。如果某头奶牛涂的防晒霜的SPF值过小,那么阳光仍然能 把她的皮肤灼伤;如果防晒霜的SPF值过大,则会使日光浴与躺在屋里睡觉变得 几乎没有差别。为此,奶牛们准备了一大篮子防晒霜,一共L(1 <= L <= 2500)瓶。第i瓶 防晒霜的SPF值为SPF_i(1 <= SPF_i <= 1,000)。瓶子的大小也不一定相同,第i 瓶防晒霜可供cover_i头奶牛使用。当然,每头奶牛只能涂某一个瓶子里的防晒霜 ,而不能把若干个瓶里的混合着用。 请你计算一下,如果使用奶牛们准备的防晒霜,最多有多少奶牛能在不被灼 伤的前提下,享受到日光浴的效果?

Input

* 第1行: 2个用空格隔开的整数:C和L

* 第2..C+1行: 第i+1行给出了适合第i头奶牛的SPF值的范围:minSPF_i以及 maxSPF_i * 第C+2..C+L+1行: 第i+C+1行为了第i瓶防晒霜的参数:SPF_i和cover_i,两个 数间用空格隔开。

Output

* 第1行: 输出1个整数,表示最多有多少头奶牛能享受到日光浴

Sample Input

3 2
3 10
2 5
1 5
6 2
4 1

输入说明:

一共有3头奶牛,2瓶防晒霜。3头奶牛适应的SPF值分别为3..10,2..5,以
及1..5。2瓶防晒霜的SPF值分别为6(可使用2次)和4(可使用1次)。可能的分
配方案为:奶牛1使用第1瓶防晒霜,奶牛2或奶牛3使用第2瓶防晒霜。显然,最
多只有2头奶牛的需求能被满足。

Sample Output

2

HINT

 

Source

Gold

先考虑奶牛没有minSPF的情况,那么可以以maxSPF为关键字排序,比较每个防晒霜是否可用

那么,又了下限以后呢,仍可以用maxSPF排序,如果这个奶牛因为maxSPF过大没有防晒霜可用,那么下限就不用考虑

比较时保证下限。

  1. #include <algorithm>
  2. #include <cstdio>
  3.  
  4. inline void read(int &x)
  5. {
  6. x=; register char ch=getchar();
  7. for(; ch>''||ch<''; ) ch=getchar();
  8. for(; ch>=''&&ch<=''; ch=getchar()) x=x*+ch-'';
  9. }
  10.  
  11. const int N();
  12. int n,m,ans;
  13.  
  14. struct Node {
  15. int a,b;
  16. bool operator < (const Node&x)const
  17. {
  18. return b!=x.b?b<x.b:a<x.a;
  19. }
  20. }cow[N],sun[N];
  21.  
  22. int Presist()
  23. {
  24. read(n),read(m);
  25. for(int i=; i<=n; ++i)
  26. read(cow[i].a),read(cow[i].b);
  27. for(int i=; i<=m; ++i)
  28. read(sun[i].a),read(sun[i].b);
  29. std::sort(cow+,cow+n+);
  30. for(int k,i=; i<=n; ++i)
  31. {
  32. k=;
  33. for(int j=; j<=m; ++j)
  34. if(sun[j].b&&sun[j].a>=cow[i].a&&sun[j].a<=cow[i].b)
  35. if(!k||sun[j].a<sun[k].a) k=j;
  36. if(k) ans++,sun[k].b--;
  37. }
  38. printf("%d\n",ans);
  39. return ;
  40. }
  41.  
  42. int Aptal=Presist();
  43. int main(int argc,char**argv){;}

BZOJ——T 1707: [Usaco2007 Nov]tanning分配防晒霜的更多相关文章

  1. 【BZOJ】1707: [Usaco2007 Nov]tanning分配防晒霜

    [算法]贪心扫描线(+堆) [题意]给定n头牛有区间[a,b],m个防晒霜值为ai,每个可以使用bi次,每次可以使包含它的区间涂到防晒霜,问最多被涂牛数. [题解] 参考:[bzoj1707]: [U ...

  2. 1707: [Usaco2007 Nov]tanning分配防晒霜

    1707: [Usaco2007 Nov]tanning分配防晒霜 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 548  Solved: 262[Sub ...

  3. BZOJ 1707 [Usaco2007 Nov]tanning分配防晒霜(扫描线+贪心+优先队列)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1707 [题目大意] 每个奶牛各自能够忍受的阳光强度有一个最小值和一个最大值 防晒霜的作 ...

  4. bzoj 1707: [Usaco2007 Nov]tanning分配防晒霜【贪心||最大流(?)】

    洛谷上能过的最大流bzoj上T了--但是贪心做法明明在洛谷上比最大流要慢啊--如果是最大流的话就是裸题了吧 说一下贪心,就按照防晒霜排序,然后对每一个防晒霜选一头可以使用的且r最小的牛 就,没了. 贪 ...

  5. BZOJ 1707: [Usaco2007 Nov]tanning分配防晒霜

    Description 奶牛们计划着去海滩上享受日光浴.为了避免皮肤被阳光灼伤,所有C(1 <= C <= 2500)头奶牛必须在出门之前在身上抹防晒霜.第i头奶牛适合的最小和最 大的SP ...

  6. BZOJ1707:[Usaco2007 Nov]tanning分配防晒霜

    我对贪心的理解:https://www.cnblogs.com/AKMer/p/9776293.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem ...

  7. BZOJ1707 : [Usaco2007 Nov]tanning分配防晒霜

    S向每头奶牛连边,容量1 每个防晒霜向T连边,容量cover 每头奶牛向SPF在自己范围内的防晒霜连边,容量inf 用线段树优化建图跑最大流即可. #include<cstdio> con ...

  8. [BZOJ1707] [Usaco2007 Nov] tanning分配防晒霜 (贪心)

    Description 奶牛们计划着去海滩上享受日光浴.为了避免皮肤被阳光灼伤,所有C(1 <= C <= 2500)头奶牛必须在出门之前在身上抹防晒霜.第i头奶牛适合的最小和最 大的SP ...

  9. 【bzoj1707】[Usaco2007 Nov]tanning分配防晒霜 贪心+Treap

    题目描述 奶牛们计划着去海滩上享受日光浴.为了避免皮肤被阳光灼伤,所有C(1 <= C <= 2500)头奶牛必须在出门之前在身上抹防晒霜.第i头奶牛适合的最小和最 大的SPF值分别为mi ...

随机推荐

  1. .net4.5注册到iis

    开始->所有程序->附件->鼠标右键点击“命令提示符”->以管理员身份运行->%windir%\Microsoft.NET\Framework\v4.0.30319\as ...

  2. 事件捕获 & 事件冒泡

    <body> <div id="div1"> <div id="div2"> <div id="div3&q ...

  3. [LOJ] 分块九题 4

    https://loj.ac/problem/6280 区间修改,区间求和. 本来线段树的活. //Stay foolish,stay hungry,stay young,stay simple #i ...

  4. openjdk-alpine镜像无法打印线程堆栈和内存堆栈问题

    基于openjdk:8u171-alpine构建的java镜像,使用jstack命令打印线程的时候会提示以下错误: /opt # ps -ef PID USER TIME COMMAND 1 root ...

  5. linux系统日志中出现大量systemd Starting Session ### of user root 解决

    这种情况是正常的,不算是一个问题 https://access.redhat.com/solutions/1564823 Environment Red Hat Enterprise Linux 7 ...

  6. linux 部署nginx作为反向代理入口的内核参数/etc/sysctl.conf

    # Kernel sysctl configuration file for Red Hat Linux## For binary values, 0 is disabled, 1 is enable ...

  7. 利用springboot创建多模块项目

    本文旨在用最通俗的语言讲述最枯燥的基本知识 最近要对一个不大不小的项目进行重构,用spring觉得太过于繁琐,用cloud又有觉得过于庞大,维护的人手不够:权衡之下,最终选了springboot作为架 ...

  8. LeetCode(31) Next Permutation

    题目 Implement next permutation, which rearranges numbers into the lexicographically next greater perm ...

  9. shell for mysql backup in linux

    今天上班只有一台linux系统,就学着在linux上写了个脚本,没啥技术含量 省得每天敲代码备份 没有设置自动备份时间,这里可以参照 http://www.th7.cn/db/mysql/201305 ...

  10. python操作剪贴板错误提示:pywintypes.error: (1418, 'GetClipboardData',线程没有打开的剪贴板)

    问题现象:通过打断点,一步步调试可以正常复制和粘贴剪贴板数据.但是直接运行会报错pywintypes.error: (1418, 'GetClipboardData',线程没有打开的剪贴板) 问题原因 ...