原题链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1091

思路分析:通过读题不难发现这是一道涉及贪心算法的题,刚开始上手做也是摸不着头脑。首先把所有的线段按起点由小到大进行排序,比如(1,5),(2,4),(2,8),(3,7),(7,9), 然后进行比较,每次比较保留最大的末尾数字,最终结果就是 max(min(最大末尾数字,本次末尾数字)- 本次起始数字,上次的比较结果);

举个栗子:

/*
1 5
2 4
2 8
3 7
7 9
*/ // 第一次
Max = 5, ans = 0; // 第二次
Max = 5, ans = 4 - 2 = 2
// ans = max(min(5, 4) - 2, 0) = 4 // 第三次
Max = 8, ans = 5 - 2 = 3
// Max = max(5, 8) = 8, ans = max(min(5, 8) - 2, 2) = 3 // 第四次
Max = 8, ans = 7 - 3 = 4
// ans = max(min(8, 7) - 3, 3) = 4 // 第五次
Max = 8, ans = 4

代码如下:

#include <iostream>
#include <algorithm>
using namespace std; typedef pair<int, int> P;
const int MAX = 50000;
P a[MAX];
int n; int main() {
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i].first >> a[i].second; sort(a, a+n); int Max = a[0].second, ans = 0;
for (int i = 1; i < n; i++) {
ans = max(min(Max, a[i].second) - a[i].first, ans);
Max = max(Max, a[i].second);
}
cout << ans << endl;
return 0;
}

51 Nod 1091 线段的重叠 (贪心算法)的更多相关文章

  1. 51 Nod 1091 线段的重叠

    2017-09-24 19:51:41 writer:pprp 上一个题目就是关于线段重叠最大值,这个是找区间最长重合? 给你n个线段,然后让你在其中选择两条,使两条尽可能重合多一点 解决方法; 1. ...

  2. 51Nod 1091 线段的重叠(贪心+区间相关,板子题)

    1091 线段的重叠 基准时间限制:1 秒 空间限制:131072 KB 分值: 5         难度:1级算法题 X轴上有N条线段,每条线段包括1个起点和终点.线段的重叠是这样来算的,[10 2 ...

  3. 51Nod 1091 线段的重叠(贪心+区间相关

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

  4. [51nod] 1091 线段的重叠 贪心

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

  5. 51 nod 1091 贪心

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1091 1091 线段的重叠 基准时间限制:1 秒 空间限制:131072 ...

  6. 51nod 1091 线段的重叠【贪心/区间覆盖类】

    1091 线段的重叠 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 X轴上有N条线段,每条线段包括1个起点和终点.线段的重叠是这样来算的,[10 2 ...

  7. 51 nod 1023 石子归并 V3(GarsiaWachs算法)

    1023 石子归并 V3基准时间限制:2 秒 空间限制:131072 KB 分值: 320 难度:7级算法题 N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一 ...

  8. 51Nod 1091 线段的重叠 (贪心)

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

  9. 【51nod-1091】线段的重叠(贪心)

    所有线段按起点从小到大排序,然后比较出最大的重叠部分.比如第i条线段和第j条线段进行比较找出重叠部分(j>i),当第j条线段的右端点<第i条线段的右端点,此时可以让i继续比较后面的线段:如 ...

随机推荐

  1. 转:StoryBoard快速上手

    由于最近才接触到IOS,苹果已经建议storyboard来搭建所有界面了,于是我也追随时尚,直接开始使用storyboard.(不料在涉及到页 面跳转的时候,遇到的问题是:点击后没有任何反应)众所周知 ...

  2. 自动化测试环境搭建之Python3.6+selenium44+firefox

    推荐使用: Python3.6+selenium2.53.6+Firefox46以下 +[Chrome任意版本+对应版本webdriver] ----------------------------- ...

  3. AT266 迷子のCDケース 题解

    Content 有 \(n+1\) 个碟,编号为 \(0\sim n\),一开始 \(0\) 号碟在播放机上,其他的碟依次放进了 \(n\) 个盒子里面.现在有 \(m\) 次操作,每次操作找到当前在 ...

  4. 深入理解css中position属性及z-index属性 https://www.cnblogs.com/zhuzhenwei918/p/6112034.html

    深入理解css中position属性及z-index属性 请看出处:https://www.cnblogs.com/zhuzhenwei918/p/6112034.html 在网页设计中,positi ...

  5. Postman环境变量的使用

    前言 请注意,Postman新版有ui上的改动,本文使用的Postman 版本8.4.0 for Mac, ui有调整,但是功能无改变. Postman是一款接口调测的软件,服务端开发的同学肯定会对自 ...

  6. html5调用摄像头截图

    关于html5调用音视频等多媒体硬件的API已经很成熟,不过一直找不到机会把这些硬件转化为实际的应用场景,不过近年来随着iot和AI的浪潮,我觉得软硬结合的时机已经成熟.那我们就提前熟悉下怎么操作这些 ...

  7. Dapr项目应用探索

    背景介绍 前面文章对Dapr的基本信息进行了学习,接下来尝试将Dapr应用相关应用中. 接下来一步步实现应用dapr功能. 一.预期效果 如上图应用Dapr点包含: a) 报表服务绑定统一数据源服务: ...

  8. 【LeetCode】773. Sliding Puzzle 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/sliding- ...

  9. 【剑指Offer】和为S的连续正数序列 解题报告(Python)

    [剑指Offer]和为S的连续正数序列 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interview ...

  10. 1246 - Colorful Board

    1246 - Colorful Board    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB ...