Sunscreen

Descriptions

C (1 ≤ C ≤ 2500) 头奶牛在海滩边晒太阳,要避免在日光浴时产生难看的灼伤,每头奶牛必须用防晒霜覆盖它的皮肤。第 i 头奶牛有一个最小和最大 SPF 值 (1 ≤ minSPFi ≤ 1,000; minSPFi ≤ maxSPFi ≤ 1,000) 将会起作用。如果 SPF 值太低,则奶牛会受到日光灼伤;如果 SPF 值太高,则牛奶无法进行日光浴。

奶牛们有一个野餐篮子,带了 L (1 ≤ L ≤ 2500) 瓶防晒霜乳液,第 i 瓶的 SPF 值是 SPFi(1 ≤ SPFi ≤ 1,000) 。第 i 瓶防晒霜可以涂抹覆盖 coveri 头奶牛。一头牛奶只能用一瓶防晒霜涂抹。

对于给定的防晒霜乳液,最多可以有多少头奶牛能够在日光浴时避免被灼伤?

输入

* 第 1 行: 两个以空格分隔的整数: C 和 L
* 第 2 到 C+1 行: 第 i 行描述了第 i 头奶牛的防晒霜约束条件,包括两个整数: minSPFi 和 maxSPFi 
* 第 C+2 到 C+L+1 行: 第 i+C+1 行描述了第 i 个防晒霜瓶,包括以空格分隔的整数: SPFi和 coveri


输出

只包含一个整数的单行,表示日光浴时受到防晒保护的奶牛的最大数量。


示例输入

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

示例输出

2

题目链接

https://vjudge.net/problem/POJ-3614

将奶牛按照SPF值的最小值从小到大排序。

将防晒霜也按照SPF的值从小到大排序

从最小的防晒霜枚举,将所有符合  最小值小于等于该防晒霜的奶牛的最大值 放入优先队列之中。

然后优先队列是小值先出

priority_queue<int, vector<int>, greater<int> > qi2;//从小到大的优先级队列,可将greater改为less,即为从大到小

AC代码

#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <sstream>
#define IOS ios_base::sync_with_stdio(0); cin.tie(0);
#define Mod 1000000007
#define eps 1e-6
#define ll long long
#define INF 0x3f3f3f3f
#define MEM(x,y) memset(x,y,sizeof(x))
#define Maxn 100000+5
using namespace std;
int C,L;
typedef pair<int,int> P;
priority_queue<int,vector<int>,greater<int> >q;//优先队列
P cow[Maxn],sun[Maxn];//奶牛 防晒霜
int main()
{
cin>>C>>L;
for(int i=;i<C;i++)//存数据
cin>>cow[i].first>>cow[i].second;
for(int i=;i<L;i++)
cin>>sun[i].first>>sun[i].second;
sort(cow,cow+C);//排序
sort(sun,sun+L);
int j=,ans=;
for(int i=;i<L;i++)
{
while(j<C&&cow[j].first<=sun[i].first)//奶牛FPS最小值小于防晒霜的FPS
{
q.push(cow[j].second);//奶牛入队
j++;
}
while(!q.empty()&&sun[i].second)
{
int now=q.top();
q.pop();
if(now<sun[i].first)//奶牛FPS最大值小于防晒霜的FPS,不符合
continue;
ans++;//若符合,则奶牛数+1
sun[i].second--;//防晒霜数量-1
}
}
cout<<ans<<endl;
return ;
}

【POJ - 3614】Sunscreen (优先队列)的更多相关文章

  1. POJ 3614 Sunscreen 优先队列 贪心

    题意 有C个奶牛去晒太阳 (1 <=C <= 2500),每个奶牛各自能够忍受的阳光强度有一个最小值和一个最大值,太大就晒伤了,太小奶牛没感觉. 而刚开始的阳光的强度非常大,奶牛都承受不住 ...

  2. POJ 3614 Sunscreen (优先队列)

    题意:奶牛美容:有C头奶牛日光浴,每头奶牛分别需要minSPF_i和maxSPF_i单位强度之间的阳光.现有L种防晒霜,分别能使阳光强度稳定为SPF_i,其瓶数为cover_i.求最多满足多少头奶牛 ...

  3. POJ 3614 Sunscreen 贪心

    题目链接: http://poj.org/problem?id=3614 Sunscreen Time Limit: 1000MSMemory Limit: 65536K 问题描述 to avoid ...

  4. poj -3614 Sunscreen(贪心 + 优先队列)

    http://poj.org/problem?id=3614 有c头奶牛在沙滩上晒太阳,每头奶牛能忍受的阳光强度有一个最大值(max_spf) 和最小值(min_spf),奶牛有L种防晒霜,每种可以固 ...

  5. 【POJ 3614 Sunscreen】贪心 优先级队列

    题目链接:http://poj.org/problem?id=3614 题意:C头牛去晒太阳,每头牛有自己所限定的spf安全范围[min, max]:有L瓶防晒液,每瓶有自己的spf值和容量(能供几头 ...

  6. poj 3614 Sunscreen

                                                                                                        ...

  7. POJ 3614 Sunscreen(贪心,区间单点匹配)

    把牛的SPF看作一个区间,防晒霜看作点.一个点可以匹配C[i]次,问最大匹配数.可以用图论做. 也可以贪心.贪心的思想是,把区间和点排序以后,考虑最左边的点,加入和这个点相交的区间, 并排除出界的区间 ...

  8. poj 3431 Expedition 优先队列

    poj 3431 Expedition 优先队列 题目链接: http://poj.org/problem?id=2431 思路: 优先队列.对于一段能够达到的距离,优先选择其中能够加油最多的站点,这 ...

  9. 优先队列:POJ No 3614 Sunscreen 贪心

    Sunscreen Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6410   Accepted: 2239 Descrip ...

随机推荐

  1. sysbench库文件路径不对

    #sysbench --versionsysbench: error while loading shared libraries: libmysqlclient.so .20: cannot ope ...

  2. linear 工作流

    最近把 最后一张画ui的rt 从float换成srgb 并没有引起我预计会有的 alpha混合结果发生变化的事情 我想是因为 1.artists在ps里的工作流是线性空间 2.onchip memor ...

  3. hbase实践之写流程

    内容提要 一.写入流程 初始化ZooKeeper Session,建立长连接,获取META Region的地址. 获取rowkey对应的Region路由信息:来自.meta. 写入region 如何快 ...

  4. confluence配置搭建

    1.环境准备:需要安装jdk.需要mysql5.7数据库,创建数据库confluence并创建用户和密码 CREATE DATABASE `confluence` DEFAULT CHARACTER ...

  5. C# WebClient 的文件上传下载

    上传文件 string path = openFileDialog1.FileName; WebClient wc = new WebClient(); wc.Credentials = Creden ...

  6. HDU 6052 - To my boyfriend | 2017 Multi-University Training Contest 2

    说实话不是很懂按题解怎么写,思路来源于 http://blog.csdn.net/calabash_boy/article/details/76272704?yyue=a21bo.50862.2018 ...

  7. vue-cropperjs 图片裁剪上传功能使用方法记录

    引入: 官网:https://www.npmjs.com/package/vue-cropperjs 控制台输入: npm install --save vue-cropperjs vue 项目中引入 ...

  8. 【线性代数】4-1:四个正交子空间(Orthogonality of the Four Subspace)

    title: [线性代数]4-1:四个正交子空间(Orthogonality of the Four Subspace) categories: Mathematic Linear Algebra k ...

  9. JS核心知识点:DOM\BOM\EVENT

    1.DOM(Document Object Model) :文档对象模型2. DOM节点:页面中最基本的组成部分 3. childNodes:获取某个节点下所有的子节点 在标准及ie9以上 : 会获取 ...

  10. [python]@cached_property缓存装饰器

    cached_property缓存装饰器 class cached_property(object): """ Decorator that converts a met ...