题目描述
有n个点和m个区间,点和区间的端点全部是整数,对于点a和区间[b,c],若a> =b且a< =c,称点a满足区间[b,c]。
求最小的点的子集,使得所有区间都被满足。

数据规模和约定
1< =n,m< =10000
0< =点和区间的坐标< =50000
输入
第一行两个整数n m
以下n行 每行一个整数,代表点的坐标
以下m行 每行两个整数,代表区间的范围
输出
输出一行,最少的满足所有区间的点数,如无解输出-1。
样例输入
5 5
2
6
3
8
7
2 5
3 4
3 3
2 7
6 9
样例输出
2
这两天做了几道线段和点的贪心问题,很伤。。
总结起来,这种问题大概率要排序,按照左端点右端点都有可能,根据具体题意而定。
这道题目,我们先按照左端点升序排序,如果左端点相同,则按照右端点降序排序。这样我们就能每次将点推到一个更远的位置。而这样做的次数,就是我们花费的点数。
代码如下:

#include<bits/stdc++.h>
#define ll long long
using namespace std;const int maxx=1e4+100;
struct node{int s,e;bool operator<(const node &a)const{if(s!=a.s) return s<a.s;else return e>a.e;}
}p[maxx];
int a[maxx];
int n,m;int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++) scanf("%d",&a[i]);for(int i=1;i<=m;i++) scanf("%d%d",&p[i].s,&p[i].e);sort(p+1,p+1+m);int k,i,j,st=1;for(k=0;k<n;k++)//操作的次数=最少需要的点数{int _max=1;for(i=1;i<=n;i++){for(j=st;j<=m;j++) if(p[j].s>a[i]||p[j].e<a[i]) break;if(j>_max) _max=j;//看这个点最多可以满足多少个区间。}st=_max;//下次开始的时间就在上一次点的地方开始,寻找满足的点if(st==m+1) break;//所有的线段满足了,就直接退出。}if(k==n) cout<<"-1"<<endl;else cout<<k+1<<endl;return 0;
}

努力加油a啊,(o)/~

[蓝桥杯][算法提高VIP]线段和点(排序+贪心)相关推荐

  1. [蓝桥杯][算法提高VIP]排队打水问题(贪心)

    题目描述 有n个人排队到r个水龙头去打水,他们装满水桶的时间t1.t2----tn为整数且各不相等,应如何安排他们的打水顺序才能使他们总共花费的时间最少? 数据规模和约定 其中80%的数据保证n< ...

  2. [蓝桥杯][算法提高VIP]打水问题(贪心)

    题目描述 N个人要打水,有M个水龙头,第i个人打水所需时间为Ti,请安排一个合理的方案使得所有人的等待时间之和尽量小. 提示 一种最佳打水方案是,将N个人按照Ti从小到大的顺序依次分配到M个龙头打水. ...

  3. [蓝桥杯][算法提高VIP]最小乘积(提高型)-排序

    题目描述 给两组数,各n个. 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小.要求程序输出这个最小值. 例如两组数分别为:1 3 -5和-2 4 1 那么对应乘积取和的最小 ...

  4. [蓝桥杯][算法提高VIP]夺宝奇兵-递推+记忆化搜索

    题目描述 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 " ...

  5. [蓝桥杯][算法提高VIP]夺宝奇兵-dp

    题目描述 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 " ...

  6. [蓝桥杯][算法提高VIP]阮小二买彩票

    [蓝桥杯][算法提高VIP]阮小二买彩票 题目描述 在同学们的帮助下,阮小二是变的越来越懒了, 连算账都不愿意自己亲自动手了,每天的工作就是坐在电脑前看自己的银行账户的钱是否有变多.可是一段时间观察下 ...

  7. c语言oj题1923偶数之和,问题 1923: [蓝桥杯][算法提高VIP]学霸的迷宫 (BFS)

    题目描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫.因为班长还有妹子要陪,磨刀不 ...

  8. [蓝桥杯][算法提高VIP]阮小二买彩票[递归全排列]

    题目 1578: [蓝桥杯][算法提高VIP]阮小二买彩票 时间限制: 1Sec 内存限制: 128MB 提交: 348 解决: 153 题目描述 在同学们的帮助下,阮小二是变的越来越懒了, 连算账都 ...

  9. [蓝桥杯][算法提高][vip] 阮小二买彩票

    蓝桥杯 ADV-66 算法提高 阮小二买彩票 问题描述 在同学们的帮助下,阮小二是变的越来越懒了,连算账都不愿意自己亲自动手了,每天的工作就是坐在电脑前看自己的银行账户的钱是否有变多.可是一段时间观察 ...

最新文章

  1. linux下CPU信息查询
  2. r shiny app的学习和使用,这个我认为是作为大学生最适合的入门网页开发工具!!!
  3. jdk11 javafx_JDK 11上的JavaFX
  4. java读取mysql配置文件_Linux运维:MySQL读写分离解决方案
  5. idea @value提示_IDEA 中springboot 项目使用 注解Autowired 出现红线
  6. Python中的正则表达式找到所有符合要求的字符串
  7. 使用触发器记录oracle用户登陆信息
  8. Bailian2738 实数加法【数学】
  9. Js实现input上传图片并显示缩略图
  10. Ajax 重新绑定 webgrid 数据,绑定WebGrid表单AJAX
  11. 【Linux系统编程】| 【01】系统编程基本概念
  12. 软件开发过程与需求获取
  13. java 前后端分离思想与实现
  14. 【23种设计模式】【单例模式】
  15. 工作流现状2008年
  16. python操作selenium
  17. 穿越火线老是卡在正在连接服务器,修复cf经常提示网络出现异常与服务器断开连接的方法...
  18. oracle 数据泵导出时间,Oracle DMP备份文件使用数据泵expdp/impdp导出导入dmp文件
  19. 计算网路地址,广播地址,第一位和最后一位可用地址,可用的IP地址
  20. CSS的浮动以及清楚浮动的方法

热门文章

  1. 利用属性block进行代替代理使得两个viewController传参
  2. python功能代码_整理几个常用的Python功能代码片段【收藏】
  3. 企业中书写css,web前端开发企业级CSS常用命名,书写规范总结(示例代码)
  4. php数据处理工具,数据处理的PHP类
  5. window环境下mysql配置参数_Window下mysql环境配置问题整理
  6. 为什么在iOS上访问优酷和土豆一样可以播放呢?
  7. 8.基本数据结构-顺序表和链表
  8. [20180808]exists and not exists.txt
  9. RabbitMQ系列(一)RabbitMQ在Ubuntu上的环境搭建
  10. 从零搭建自己的SpringBoot后台框架(七)