acwing 110 防晒
https://www.acwing.com/problem/content/description/112/
有C头奶牛进行日光浴,第i头奶牛需要minSPF[i]到maxSPF[i]单位强度之间的阳光。
每头奶牛在日光浴前必须涂防晒霜,防晒霜有L种,涂上第i种之后,身体接收到的阳光强度就会稳定为SPF[i],第i种防晒霜有cover[i]瓶。
求最多可以满足多少头奶牛进行日光浴。
输入格式
第一行输入整数C和L。
接下来的C行,按次序每行输入一头牛的minSPF和maxSPF值,即第i行输入minSPF[i]和maxSPF[i]。
再接下来的L行,按次序每行输入一种防晒霜的SPF和cover值,即第i行输入SPF[i]和cover[i]。
每行的数据之间用空格隔开。
输出格式
输出一个整数,代表最多可以满足奶牛日光浴的奶牛数目。
数据范围
1≤C,L≤25001≤C,L≤2500,
1≤minSPF≤maxSPF≤10001≤minSPF≤maxSPF≤1000,
1≤SPF≤10001≤SPF≤1000
输入样例: 输出样例:
本题使用贪心算法。 将所有牛能接受的防晒霜范围 按照起点进行排序,将拥有的防晒霜按照值也进行排序
从起点靠后的牛开始计算,选取牛能接受的防晒霜数值最大的那瓶,
因为牛能接受的防晒霜数值范围起点越靠后,那么将数值靠前的防晒霜留给后面的牛,自己选择和自己范围同样靠后的防晒霜是最佳选择
代码
#include <iostream>
#include <vector>
#include <algorithm> using namespace std; int n, m;
const int N = ;
vector<pair<int, int>> vecPII(,pair<int,int>());
vector<pair<int, int>> vecSpf(, pair<int, int>());
int main()
{
cin >> n >> m; for (int i = ; i < n; i++) {
cin >> vecPII[i].first >> vecPII[i].second;
}
sort(&vecPII[], &vecPII[] + n);
reverse(&vecPII[], &vecPII[] + n); for (int i = ; i < m; i++) {
cin >> vecSpf[i].first >> vecSpf[i].second;
}
sort(&vecSpf[], &vecSpf[] + m);
reverse(&vecSpf[], &vecSpf[] + m); int ret = ;
for (int i = ; i < n; i++) {
int maxlimit = vecPII[i].second;
int minlimit = vecPII[i].first;
for (int j = ; j < m; j++) {
if (vecSpf[j].first <= maxlimit && vecSpf[j].first >= minlimit &&
vecSpf[j].second > ) {
vecSpf[j].second--;
ret++;
break;
} }
} cout << ret << endl; return ;
}
acwing 110 防晒的更多相关文章
- 【题解】AcWing 110. 防晒(普及题)
[题解]AcWing 110. 防晒(普及题) AcWing 110. 防晒 你没有用过的全新OJ 嘿嘿水水题. 题目就是一维坐标轴上给定多个线段,给定多个点,点在线段上造成贡献,点可以重复,问最大贡 ...
- AcWing:110. 防晒(贪心)
有C头奶牛进行日光浴,第i头奶牛需要minSPF[i]到maxSPF[i]单位强度之间的阳光. 每头奶牛在日光浴前必须涂防晒霜,防晒霜有L种,涂上第i种之后,身体接收到的阳光强度就会稳定为SPF[i] ...
- PostMan的在线安装和简单使用
Postman是一款很流行的WEB接口测试工具,因其强大的功能及清新的界面,赢得许多测试及开发者的喜爱. 1.PostMan的在线安装 因google退出中国,使得chrome上的扩展插件无法在线 ...
- AcWing 1208. 翻硬币
AcWing 1208. 翻硬币 原题链接 小明正在玩一个"翻硬币"的游戏. 桌上放着排成一排的若干硬币.我们用 * 表示正面,用 o 表示反面(是小写字母,不是零). 比如,可能 ...
- 背包四讲 (AcWing算法基础课笔记整理)
背包四讲 背包问题(Knapsack problem)是一种组合优化的NP完全问题.问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高 ...
- [变]C#谜题(1-10)表达式篇
[变]C#谜题(1-10)表达式篇 最近偶然发现了<Java谜题>,很有意思,于是转到C#上研究一下. 本篇是关于表达式的一些内容. 谜题1:奇数性(负数的取模运算) 下面的方法意图确定它 ...
- [No00006D]下载离线版的github for windows【以Github for Windows 3.0.110.为例】
目录 先上地址后讲原理: 原理: 11个目录的文件怎么一口气下载呢? 最后,把下好的文件批量名,同时将GitHub.exe.manifest也放到软件根目录下(与GitHub.exe同级): 今后的猜 ...
- 110.Balanced Binary Tree Leetcode解题笔记
110.Balanced Binary Tree Given a binary tree, determine if it is height-balanced. For this problem, ...
- Android安装失败 Installation error code: -110
在系统开发过程中,开发的app管理器,发现怎么安装都是失败. 详细的查看了log发现. I/ActivityManager( 899): START {dat=file:///mnt/sdcard/ ...
随机推荐
- Spring Boot Starters到底怎么回事?
前言 上周看了一篇.你一直在用的Spring Boot Starters究竟是怎么回事(https://www.cnblogs.com/fengzheng/p/10947585.html) 感觉终 ...
- 关于for循环中使用setTimeout的四种解决方案
我们先来简单了解一下setTimeout延时器的运行机制.setTimeout会先将回调函数放到等待队列中,等待区域内其他主程序执行完毕后,按时间顺序先进先出执行回调函数.本质上是作用域的问题. 因此 ...
- [Go] 实现面向对象中的继承和覆盖方法
go中的继承是使用结构体嵌套实现的,可以继承父类的方法 覆盖和其他面向对象的语言是一样的,函数名,参数,返回类型一致,就可以覆盖父类的方法 package main import "log& ...
- 25.md5 collision(NUPT_CTF)
抓住两点提示: 1.md5碰撞 2.please input a 利用0 == 字符串是成立的,从而可以绕过MD5检查. 所以找一个md5是0e开头的值,因为 php 在处理 == 的时候当碰到的字符 ...
- 2019-2020-1 20199305《Linux内核原理与分析》第七周作业
进程的描述与创建 (一)进程的描述 (1)操作系统内核实现操作系统的三大管理功能(进程管理最为核心) 进程管理 内存管理 文件系统 (2)在Linux内中用一个数据结构struct task_stru ...
- Spring Cloud Alibaba 实战(十一) - Spring Cloud认证授权
欢迎关注全是干货的技术公众号:JavaEdge 本文主要内容: 如何实现用户认证与授权? 实现的三种方案,全部是通过画图的方式讲解.以及三种方案的对比 最后根据方案改造Gateway和扩展Feign ...
- 分享学习 PHP 源码的方法
每天抽一点时间来看看 PHP 源码方面的书,说实话,无法在调试器下观察 PHP 运行状态的上下文实在是一件痛苦的事情.不过还好不是一无所获,虽然内容比较多,但是掌握方法挨着看下去还是 ...
- java中窗口的打开与关闭
作为小白的我,今天学习了java中打开与关闭窗口的方法. 1.在java中创建一个窗口 import java.awt.*;import java.awt.event.*;public class L ...
- Java编程思想——第21章 并发
前言 对于某些问题,如果能够并行的执行程序中的多个部分,则回变得非常方便甚至必要,这些部分要么看起来是并发执行,要么是在多处理环境下同时执行.并行编辑可以使程序执行速度得到极大提高,或者为设计某些类型 ...
- Mybatis中返回Map
在Mybatis中,我们通常会像下边这样用: 返回一个结果 User selectOne(User user); <select id="selectOne" paramet ...