题目描述

城市E的马路上有很多路灯,每两个相邻路灯之间的间隔都是1公里。小赛是城市E的领导,为了使E城市更快更好的发展,需要在城市E的一段长度为M的主干道上的一些区域建地铁。这些区域要是建了地铁,就需要挪走相应的路灯。可以把长度为M的主干道看成一个数轴,一端在数轴0的位置,另一端在M的位置;数轴上的每个整数点都有一个路灯。要建地铁的这些区域可以用它们在数轴上的起始点和终止点表示,已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的路灯(包括区域端点处的两个路灯)移走。你能帮助小赛计算一下,将这些路灯移走后,马路上还有多少路灯?

输入

输入文件的第一行有两个整数M(1 <= M <= 10000)和 N(1 <= N <= 100),M代表马路的长度,N代表区域的数目,M和N之间用一个空格隔开。接下来的N行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。

所有输入都为整数。且M和N的范围为上面提示范围。

样例输入

500 3
100 200
150 300
360 361

输出

输出文件包括一行,这一行只包含一个整数,表示马路上剩余路灯的数目。

样例输出

298

#include<iostream>
#include<vector>
#include<algorithm>
#include<functional>
using namespace std;
struct range{int begin;int end;friend bool operator < (const range &r1,const range &r2){if (r1.begin < r2.begin){return true;}else{return false;}}
};
int calcul(int M, vector<range> &dis){sort(dis.begin(), dis.end(),less<range>());int start=0, stop=0;int lamp_num = 0;auto it = dis.begin();start = it->begin;stop = it->end;for (++it; it != dis.end(); it++){if (stop <it->begin){lamp_num+=( stop - start + 1);start = it->begin;stop = it->end;}else if (stop >= it->begin && stop <= it->end){stop = it->end;}else{continue;}}lamp_num += (stop - start + 1);return M + 1 - lamp_num;}
int main(){vector<range> dis;int M, n;cin >> M >> n;for (size_t i = 0; i < n; i++){range temp;cin >> temp.begin >> temp.end;dis.push_back(temp);}cout << calcul(M, dis) << endl;return 0;
}

赛马网基本算法之--马路上的路灯相关推荐

  1. 赛马网基本算法之一 (股神问题)

    题目描述 有股神吗? 有,小赛就是! 经过严密的计算,小赛买了一支股票,他知道从他买股票的那天开始,股票会有以下变化:第一天不变,以后涨一天,跌一天,涨两天,跌一天,涨三天,跌一天...依此类推. 为 ...

  2. 赛马网基本算法之--上台阶

    题目描述 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法? 注:规定从一级到一级有0种走法. 输入 输入数据首先包含一个整数n(1<=n<=100 ...

  3. 赛马网基本算法之--路灯

    题目描述 V先生有一天工作到很晚,回家的时候要穿过一条长l的笔直的街道,这条街道上有n个路灯.假设这条街起点为0,终点为l,第i个路灯坐标为ai.路灯发光能力以正数d来衡量,其中d表示路灯能够照亮的街 ...

  4. 赛马网基本算法之--研究生考试

    题目描述 欢迎大家参加奇虎360 2016校招在线招聘考试,首先预祝大家都有个好成绩!我相信参加本次在线招聘考试的有不少研究生同学.我们知道,就计算机相关专业来说,考研有4门科目,分别是政治(满分10 ...

  5. 赛马网基本算法之--将功赎过

    题目描述 小赛是一名幸运的程序员. 虽然他成功帮助小朋友以最快时间夺回了狼堡,但是面试官却打算和他说拜拜了. 理由是--游戏天赋太高,有不务正业.走火入魔的倾向QAQ-- 尽管小赛很不能接受这个理由, ...

  6. 赛马网基本算法之--日期倒计时

    题目描述 在经济.科技日益发达的今天,人们对时间的把握越来越严格,对于一个一定影响力的公司的高管来说,他可能要将自己的行程提前安排到下个月.对于普通人来说,他也可能将几天之后的安排已经提前做好. 请设 ...

  7. 赛马网基本算法之--分苹果

    题目描述 果园里有堆苹果,N(1<N<9)只熊来分.第一只熊把这堆苹果平均分为N份,多了一个,它把多的一个扔了,拿走了一份.第二只熊把剩下的苹果又平均分成N份,又多了一个,它同样把多的一个 ...

  8. 赛马网基本算法之--翻转数组

    题目描述 给定一个长度为n的整数数组a,元素均不相同,问数组是否存在这样一个片段,只将该片段翻转就可以使整个数组升序排列.其中数组片段[l,r]表示序列a[l], a[l+1], ..., a[r]. ...

  9. 赛马网基本算法之---比大小

    现在有"abcdefghijkl"12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小的? 输入 第一行有一个整数n(0<n< ...

最新文章

  1. AI+大数据助力抗疫,带你认识百度地图的新玩法!
  2. 用Python解密2021年最新富豪榜,马云居然连前三都没进
  3. jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法
  4. mysql自增主键归零的方法
  5. 一些学习cocos2d的网站
  6. 桌面在计算机领域常用来指,桌面在计算机领域常用来指什么
  7. php 解析xml 的四种方法(转)
  8. 数学推导题,NTT,快速数论变换,Wannafly-导数卷积
  9. 小记 cin/get/getline
  10. java web开发实战经典 李兴华_MLDN李兴华JavaWeb开发实战经典(高级案例篇)全部源码...
  11. 【python】数据挖掘 实验:中国二级城市经纬度聚类分析
  12. TM4C123G学习记录(3)--外部中断
  13. 希尔顿康莱德酒店及度假村亮相中国科技与创新孵化中心
  14. C语言——PTA 埃尔米特多项式
  15. Linux(CS-Notes)
  16. Lesson 11:聚类分析
  17. 分享两款不错的CRM客户关系管理系统源码
  18. ios 倒数器_Clover旗下iOS应用Widgets全线更新:倒数器、新闻画报、全球天气
  19. 小学计算机程序竞赛,25届宁波市中小学计算机程序设计竞赛初赛试题
  20. npm与包之包管理配置文件

热门文章

  1. 数据质量问题根源剖析
  2. jQuery实现滚动条一直处于最底部
  3. 如何在html中加入音效,给网页中的按钮和图片添加声音
  4. Matlab中使用Breaker模块:直流电源关断不了,给出原因
  5. 英语学习100句常见口语
  6. 送书|如果可以,我想给这本书打十星!
  7. 【操作系统】Linux文件系统 block、inode、superblock
  8. 英国首相卡梅隆特制iPad应用,处理政务
  9. matlab养老保险问题,养老保险MATLAB程序.doc
  10. webgl用法和简介