题目

X轴上有N条线段,每条线段有1个起点S和终点E。最多能够选出多少条互不重叠的线段。(注:起点或终点重叠,不算重叠)。
例如:[1 5][2 3][3 6],可以选[2 3][3 6],这2条线段互不重叠。

输入

第1行:1个数N,线段的数量(2 <= N <= 10000)
第2 - N + 1行:每行2个数,线段的起点和终点(-10^9 <= S,E <= 10^9)

输出

输出最多可以选择的线段数量。

输入样例

3
1 5
2 3
3 6

输出样例

2

思路:

要选择最多的线段数量,那么按照线段的起点、终点进行排序后,从头到尾进行选择即可

由于线段的起点和终点可能是负数,那么根据数据范围将输入的每条线段整体右移 1E9

源程序

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
#define EPS 1e-9
#define PI acos(-1.0)
#define INF 0x3f3f3f3f
#define LL long long
const int MOD = 1E9+7;
const int N = 50000+5;
const int dx[] = {-1,1,0,0};
const int dy[] = {0,0,-1,1};
using namespace std;struct Node{LL start;LL endd;
}a[N];
bool cmp(Node a,Node b){if(a.endd==b.endd)return a.start<b.start;return a.endd<b.endd;
}
int main(){int n;scanf("%d",&n);for(int i=0;i<n;++i){scanf("%lld%lld",&a[i].start,&a[i].endd);a[i].start+=1E9;a[i].endd+=1E9;}sort(a,a+n,cmp);LL k=a[0].endd;int res=1;for(int i=1;i<n;i++){if(a[i].start>=k){res++;k=a[i].endd;}}printf("%d\n",res);return 0;
}

不重叠的线段(51Nod-1133)相关推荐

  1. 51Nod --1133 不重叠的线段

    51Nod --1133 不重叠的线段 X轴上有N条线段,每条线段有1个起点S和终点E.最多能够选出多少条互不重叠的线段.(注:起点或终点重叠,不算重叠). 例如:[1 5][2 3][3 6],可以 ...

  2. 【51Nod - 1133】不重叠的线段 (贪心)

    题干: X轴上有N条线段,每条线段有1个起点S和终点E.最多能够选出多少条互不重叠的线段.(注:起点或终点重叠,不算重叠). 例如:151523233636,可以选23233636,这2条线段互不重叠 ...

  3. 51nod 1091 重叠的线段(贪心)

    题干: X轴上有N条线段,每条线段包括1个起点和终点.线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]. 给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部 ...

  4. Canvas判断线段是否重叠

    比如我们,想画一个完整的闭合的矩形,那我们就不能让线段进行重叠 那线段重叠了,判断的方法呢 canvas.onmouseup = function (e) {e = e || window.event ...

  5. 【贪心】【codevs】1214 线段覆盖

    http://codevs.cn/problem/1214/ 我去这个题...wa的我都没脾气了... 我写while(~scanf("%d", &n))竟然是不对的... ...

  6. Codeforces Round #324 (Div. 2) E. Anton and Ira 贪心

    E. Anton and Ira Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/probl ...

  7. BZOJ2298 [HAOI2011]problem a

    先把所有人从小到大排序,则 如果一个人说a个人比他大,b个人比他小,等价于他声称[b + 1, n - a]的值是相等的 问题转化为给一些线段,找出一些不重叠的线段,价值最大 (注意:线段可以重合!! ...

  8. arcgis悬挂点修改_ArcGis拓扑的那些事儿(拓扑应用过程三)

    (,,・∀・)ノ゛hello,小编又来啦(一不小心又拖更这么长时间),感觉大家都是催更小能手,天天定时定点的发消息催更,(其实很感谢大家的关注与催更,说明我写的这些对大家都有很大的用处!让我感到挺高兴 ...

  9. 【Pytorch神经网络理论篇】 23 对抗神经网络:概述流程 + WGAN模型 + WGAN-gp模型 + 条件GAN + WGAN-div + W散度

    1 对抗神经简介 1.1 对抗神经网络的基本组成 1.1.1 基本构成 对抗神经网络(即生成式对抗网络,GAN)一般由两个模型组成: 生成器模型(generator):用于合成与真实样本相差无几的模拟 ...

最新文章

  1. abap 优化之ST05
  2. 计算机多媒体的应用 毕业论文,计算机多媒体技术(毕业论文)多媒体技术与应用.doc...
  3. 如何通过看书来学习技术
  4. JavaScript:说看懂了就懂了闭包,看懂了,还是不懂...
  5. E: 无法打开锁文件 /var/lib/dpkg/lock-frontend - open (2: 没有那个文件或目录)
  6. 手机网页 弹窗layerUI
  7. WORD打印时显示错误,未定义标签?
  8. 车金融|金融产品规则引擎的前世今生(中篇)
  9. 华为运营商级路由器配置示例 | 配置VPLS Multi-homing示例
  10. Petalinux和SDK安装
  11. 2022公考经验分享
  12. 关于sql中like操作符的使用及效率优化问题整理
  13. 百度导航坐标转换问题
  14. 数据版吐槽大会:盘点2018国产综艺节目
  15. oracle基础语句练习
  16. jwt单点登录 和防重放攻击
  17. 校园二手物品交易平台实现购买商品的功能
  18. 最简单的线性回归模型 李烨_模型
  19. 萌新如何用板绘画好原画?怎么选择数位板?零基础板绘入门干货篇
  20. python pandas (ix iloc loc) 的区别

热门文章

  1. JavaEE实战班第三天
  2. 那天,他无意间瞟了眼程序员的桌面……
  3. 中台生态的形成:全面解读技术、研发、移动中台建设
  4. 面试基操:MQ怎么保障消息可靠性?
  5. Java 中的5个代码性能提升技巧,最高提升近10倍
  6. 美国热搜 “1个字形容2020年”:IBM 的代码回复太太太亮了!
  7. 程序员拒绝一个合理需求的15个方法!
  8. 阿里P9专家右军:大话软件质量稳定性
  9. 10W+集群规模下,美团点评如何优化改造K8s?
  10. JEECG再创新举,开辟云应用开发新时代,打造jeecg企业级云应用生态圈