不重叠的线段(51Nod-1133)
题目
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)相关推荐
- 51Nod --1133 不重叠的线段
51Nod --1133 不重叠的线段 X轴上有N条线段,每条线段有1个起点S和终点E.最多能够选出多少条互不重叠的线段.(注:起点或终点重叠,不算重叠). 例如:[1 5][2 3][3 6],可以 ...
- 【51Nod - 1133】不重叠的线段 (贪心)
题干: X轴上有N条线段,每条线段有1个起点S和终点E.最多能够选出多少条互不重叠的线段.(注:起点或终点重叠,不算重叠). 例如:151523233636,可以选23233636,这2条线段互不重叠 ...
- 51nod 1091 重叠的线段(贪心)
题干: X轴上有N条线段,每条线段包括1个起点和终点.线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]. 给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部 ...
- Canvas判断线段是否重叠
比如我们,想画一个完整的闭合的矩形,那我们就不能让线段进行重叠 那线段重叠了,判断的方法呢 canvas.onmouseup = function (e) {e = e || window.event ...
- 【贪心】【codevs】1214 线段覆盖
http://codevs.cn/problem/1214/ 我去这个题...wa的我都没脾气了... 我写while(~scanf("%d", &n))竟然是不对的... ...
- 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 ...
- BZOJ2298 [HAOI2011]problem a
先把所有人从小到大排序,则 如果一个人说a个人比他大,b个人比他小,等价于他声称[b + 1, n - a]的值是相等的 问题转化为给一些线段,找出一些不重叠的线段,价值最大 (注意:线段可以重合!! ...
- arcgis悬挂点修改_ArcGis拓扑的那些事儿(拓扑应用过程三)
(,,・∀・)ノ゛hello,小编又来啦(一不小心又拖更这么长时间),感觉大家都是催更小能手,天天定时定点的发消息催更,(其实很感谢大家的关注与催更,说明我写的这些对大家都有很大的用处!让我感到挺高兴 ...
- 【Pytorch神经网络理论篇】 23 对抗神经网络:概述流程 + WGAN模型 + WGAN-gp模型 + 条件GAN + WGAN-div + W散度
1 对抗神经简介 1.1 对抗神经网络的基本组成 1.1.1 基本构成 对抗神经网络(即生成式对抗网络,GAN)一般由两个模型组成: 生成器模型(generator):用于合成与真实样本相差无几的模拟 ...
最新文章
- abap 优化之ST05
- 计算机多媒体的应用 毕业论文,计算机多媒体技术(毕业论文)多媒体技术与应用.doc...
- 如何通过看书来学习技术
- JavaScript:说看懂了就懂了闭包,看懂了,还是不懂...
- E: 无法打开锁文件 /var/lib/dpkg/lock-frontend - open (2: 没有那个文件或目录)
- 手机网页 弹窗layerUI
- WORD打印时显示错误,未定义标签?
- 车金融|金融产品规则引擎的前世今生(中篇)
- 华为运营商级路由器配置示例 | 配置VPLS Multi-homing示例
- Petalinux和SDK安装
- 2022公考经验分享
- 关于sql中like操作符的使用及效率优化问题整理
- 百度导航坐标转换问题
- 数据版吐槽大会:盘点2018国产综艺节目
- oracle基础语句练习
- jwt单点登录 和防重放攻击
- 校园二手物品交易平台实现购买商品的功能
- 最简单的线性回归模型 李烨_模型
- 萌新如何用板绘画好原画?怎么选择数位板?零基础板绘入门干货篇
- python pandas (ix iloc loc) 的区别