题目

此题有多种贪心方法。

首先简化题意:

有几个在数轴上的区间,和几个在数轴上确定的位置的点,问用这些数目的点,最多能满足多少个区间里有点。

注意:此题跟区间选点问题不一样,每个点只能满足一个区间,而区间选点则可以满足多个区间。

进行贪心分析:

我们首先考虑区间,首先把最难满足的放在前面,可以把l从大到小排序,也可以把r从小到大排序。

再次注意:此时满足的困难程度并不是取决于所有点,而是根据一个点来确定区间的难易。

因为对于一个点,如果l小的区间不满足,l比它大的区间肯定不会满足,所以l大的比较困难,如果不让他先选,很有可能靠右的点被一个l小的区间给占了,r同理。

将当前问题中难解决的环节先解决往往是正确的贪心策略。

然后考虑如何选择点呢。点的选择需要根据区间的排序方式选择。

比如l是从大到小排序的,那越往后区间的l越左。所以越左边的点越需要放在后面和放在后面的区间匹配,因此点也是从大到小排序。

#include <bits/stdc++.h>
using namespace std;
int c, l, ans;
struct ha {
int r, l;
}data[100010];
struct shuang {
int zhi, tot;
}a[100100];
bool cmp1(ha x, ha y)
{
return x.l > y.l;
}
bool cmp2(shuang x, shuang y)
{
return x.zhi > y.zhi;
}
signed main()
{
scanf("%d%d", &c, &l);
for (int i = 1; i <= c; i++)
scanf("%d%d", &data[i].l, &data[i].r);
for (int i = 1; i <= l; i++)
scanf("%d%d", &a[i].zhi, &a[i].tot);
sort(a + 1, a + 1 + l, cmp2);
sort(data + 1, data + 1 + c, cmp1);
for (int i = 1; i <= c; i++)
for (int j = 1; j <= l; j++)
if (a[j].zhi >= data[i].l && a[j].zhi <= data[i].r && a[j].tot)
{
a[j].tot--, ans++;
break;
}
printf("%d", ans);
}

洛谷P2877 [USACO07NOV]防晒霜Sunscreen的更多相关文章

  1. 洛谷 P2887 [USACO07NOV]防晒霜Sunscreen 解题报告

    P2887 [USACO07NOV]防晒霜Sunscreen 题目描述 To avoid unsightly burns while tanning, each of the C (1 ≤ C ≤ 2 ...

  2. 题解 洛谷 P2287 [USACO07NOV]Sunscreen G

    原题 传送门 有C个奶牛去晒太阳 (1 <=C <= 2500),每个奶牛各自能够忍受的阳光强度有一个最小值和一个最大值(minSPFi and maxSPFi),太大就晒伤了,太小奶牛没 ...

  3. POJ3614 [USACO07NOV]防晒霜Sunscreen

    Sunscreen Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9333   Accepted: 3264 Descrip ...

  4. 洛谷P2886 [USACO07NOV]牛继电器Cow Relays

    题意很简单,给一张图,把基本的求起点到终点最短路改成求经过k条边的最短路. 求最短路常用的算法是dijkstra,SPFA,还有floyd. 考虑floyd的过程: c[i][j]=min(c[i][ ...

  5. 洛谷 P2888 [USACO07NOV]牛栏Cow Hurdles

    题目戳 题目描述 Farmer John wants the cows to prepare for the county jumping competition, so Bessie and the ...

  6. 洛谷P2888 [USACO07NOV]牛栏Cow Hurdles

    题目描述 Farmer John wants the cows to prepare for the county jumping competition, so Bessie and the gan ...

  7. 洛谷 P2886 [USACO07NOV]牛继电器Cow Relays

    题面 解题思路 ## floyd+矩阵快速幂,跟GhostCai爷打赌用不用离散化,最后完败..GhostCai真是tql ! 有个巧妙的方法就是将节点重新编号,因为与节点无关. 代码 #includ ...

  8. 洛谷P2886 [USACO07NOV]Cow Relays G (矩阵乘法与路径问题)

    本题就是求两点间只经过n条边的最短路径,定义广义的矩阵乘法,就是把普通的矩阵乘法从求和改成了取最小值,把内部相乘改成了相加. 代码包含三个内容:广义矩阵乘法,矩阵快速幂,离散化: 1 #include ...

  9. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

随机推荐

  1. Linux学习笔记之tail命令显示最后n行

    tail :输出文件的最后几行. 用于linux查看日志的时候很方便,假如日志文件为:Console.log用法:1. tail Console.log tail # 输出文件最后10行的内容 2. ...

  2. AspNetCore MVC页面数据提交验证

    2019/05/14,AspNetCore 2.2.0 摘要:AspNetCore MVC使用数据注释配合jquery.validate提交页面进行前端加后端的数据验证 主要用到了jquery.val ...

  3. flask与Flask-CORS的使用

    flask与Flask-CORS的使用 一.安装 pip install flask-cors 二.使用 # 文件:manage.py from flask_cors import CORS from ...

  4. PE系统——安装教程

    本教程使用到的软件我会在本文末给出,若失效了请私信我,重新上传. 1.安装PE系统前,把U盘插在电脑上(如果你需要安装Windows10系统,请插入一个容量至少8G的U盘).当然容量最好是32—64G ...

  5. K9F1G08U0B K9F2G08U0A K9F2G08U0M

    *L must be set to "Low" Ax表示bit,分5个周期写,一次一个Byte 原理图 引脚定义 命令 Program Erase Read 实验程序 https: ...

  6. php文字转语音

    使用百度接口 https://ai.baidu.com/docs#/TTS-Online-PHP-SDK/top 使用PHP SDK开发骤如下: 1.在官方网站下载php SDK压缩包. 2.将下载的 ...

  7. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  8. java验证邮件正则

    这里,本人从commons-validator包中源码,拷出部分内容,如下: private static final String EMAIL_REGEX = "^\\s*?(.+)@(. ...

  9. linux /bin/bash^M: bad interpreter的解决办法

    linux下执行shell脚本时报错:-bash: ./a.sh: /bin/bash^M: bad interpreter: No such file or directory. 原因是window ...

  10. Codeforces G. Nick and Array(贪心)

    题目描述: Nick had received an awesome array of integers a=[a1,a2,…,an] as a gift for his 5 birthday fro ...