51 Nod 1091 线段的重叠
2017-09-24 19:51:41
writer:pprp
上一个题目就是关于线段重叠最大值,这个是找区间最长重合?
给你n个线段,然后让你在其中选择两条,使两条尽可能重合多一点
解决方法;
1、将所有线段进行排序,按照起点升序,终点降序的方法排序
2、找到一个对比区间,有两个操作
(1)如果区间在对比区间中,那么进行比较记录
(2)如果区间在对比区间之外,那么继续比较,并且更新对比区间,因为如果依然对比这个区间,相比当前的区间,原来的对比区间更加没有可能取得结果
代码如下:
#include <iostream>
#include <algorithm> using namespace std;
const int maxn = ; struct node
{
int l, r;
} pprp[maxn]; bool cmp(const node & n1, const node &n2)
{
if(n1.l < n2.l)
return true;
if(n1.l == n2.l && n1.r > n2.r)
return true;
return false;
} int main()
{
ios::sync_with_stdio(false);
int num;
cin >> num; for(int i = ; i < num ; i++)
{
cin >> pprp[i].l >> pprp[i].r;
} sort(pprp,pprp+num,cmp); node cp = pprp[];
int ans = -; for(int i = ; i < num ; i++)
{
if(cp.r >= pprp[i].r)
ans = max(ans,pprp[i].r-pprp[i].l);
else
{
ans = max(ans,cp.r-pprp[i].l);
cp = pprp[i];
}
} if(ans == -)
cout << "" << endl;
else
cout << ans << endl; return ;
}
51 Nod 1091 线段的重叠的更多相关文章
- 51 Nod 1091 线段的重叠 (贪心算法)
原题链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1091 思路分析:通过读题不难发现这是一道涉及贪心算法的题,刚 ...
- 51Nod 1091 线段的重叠(贪心+区间相关,板子题)
1091 线段的重叠 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 X轴上有N条线段,每条线段包括1个起点和终点.线段的重叠是这样来算的,[10 2 ...
- 51Nod 1091 线段的重叠(贪心+区间相关
1091 线段的重叠 X轴上有N条线段,每条线段包括1个起点和终点.线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]. 给出N条线段的起点和终点,从中选出2条线段,这两 ...
- 51 nod 1091 贪心
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1091 1091 线段的重叠 基准时间限制:1 秒 空间限制:131072 ...
- 51nod 1091 线段的重叠【贪心/区间覆盖类】
1091 线段的重叠 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注 X轴上有N条线段,每条线段包括1个起点和终点.线段的重叠是这样来算的,[10 2 ...
- [51nod] 1091 线段的重叠 贪心
X轴上有N条线段,每条线段包括1个起点和终点.线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]. 给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长 ...
- 51Nod 1091 线段的重叠 (贪心)
X轴上有N条线段,每条线段包括1个起点和终点.线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]. 给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长 ...
- 51 Nod 线段最长重叠部分
1091 线段的重叠 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 X轴上有N条线段,每条线段包括1个起点和终点.线段的重叠是这样来算的,[10 20]和[12 ...
- 51Nod 1091:线段的重叠(贪心)
1091 线段的重叠 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注 X轴上有N条线段,每条线段包括1个起点和终点.线段的重叠是这样来算的,[10 ...
随机推荐
- php格式化输出数组
写网页的时候经常需要在页面中打印数组,但格式特别难看,看看一个html神器吧<pre>标签,能非常标准的显示数组格式 使用的时候只需要这样打印你的数组就OK了,太好用了,神器! echo ...
- 前端开发 - JQuery - 下
二十五.jquery的事件 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- JSR303验证
转自:http://blog.csdn.net/lu930124/article/details/52587135 JSR-303是一个数据验证的规范,这里我不会讲这个规范是怎么回事,只会讲一下JSR ...
- Appium-Java滑动操作
Java滑动操作,通常可以直接使用API中AndroidDriver类中的swipe方法,直接进行调用 swipe(int startx, int starty, int endx, int endy ...
- Linux kernel AESNI缓冲区溢出漏洞
解决办法: CENT OS:升级系统内核. yum update kernel UBUNTU:升级系统内核. #到 Ubuntu网站http://kernel.ubuntu.com/~kernel-p ...
- C++学习笔记-const和static
const 1.使用const来定义常量 const int num = 10; //应该在声明时进行初始化,否则该常量的值是不确定的,而且无法修改 2.const与指针 指向常量的指针(const修 ...
- 2016-2017 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2016) B - Bribing Eve
地址:http://codeforces.com/gym/101174/attachments 题目:pdf,略 思路: 把每个人的(x1,x2)抽象成点(xi,yi). 当1号比i号排名高时有==& ...
- JavaEE学习记录(一)--软件系统体系结构
1 常见软件系统体系结构B/S.C/S 1.1 C/S l C/S结构即客户端/服务器(Client/Server),例如QQ: l 需要编写服务器端程序,以及客户端程序,例如我们安装的就是QQ的客户 ...
- require-ensure
require-ensure 说明: require.ensure在需要的时候才下载依赖的模块,当参数指定的模块都下载下来了(下载下来的模块还没执行),便执行参数指定的回调函数.require.ens ...
- python3_ftp文件传输
Python中的ftplib模块 Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件 FTP的工作流程及基本操作可参考协议RFC95 ...