当前位置: 首页 > news >正文

校门外的树2贪心

 

校门外的树2

题目描述

某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。

由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。

输入格式

第一行有两个整数L和M,L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。

输出格式

一行,这一行只包含一个整数,表示马路上剩余的树的数目。

样例输入1

500 3
150 300
100 200
470 471

样例输出1

298

注释说明

1<=L<=100000,1<=M<=100000。

#include<bits/stdc++.h>
using namespace std;
int ll,m,x,ans;
struct ed{int l,r;
}a[100005];
bool cmp(ed x,ed y){return x.l<y.l;
}
int main() {scanf("%d%d",&ll,&m);for(int i=1;i<=m;i++){scanf("%d%d",&a[i].l,&a[i].r);}sort(a+1,a+1+m,cmp);x=a[1].r;ans=a[1].l;for(int i=2;i<=m;i++){if(a[i].l>x+1){ans+=a[i].l-x-1;x=a[i].r;}x=max(x,a[i].r);}cout<<ans+ll-x;
}


http://www.mrgr.cn/news/5618.html

相关文章:

  • D3js——数据绑定 datum
  • SQL注入(原理、分类、union、POST注入)
  • wangeditor报错Error: Cannot find a descendant at path [3] in node: {“children“:
  • 【开发工具】Git教程
  • in silico cloning 方法的具体步骤是什么?
  • 基于Modbus的MFC智能控制
  • 前端CSS选择器
  • Redis 详细介绍及安装使用教程(含 C# 示例)
  • 宠物空气净化器是智商税吗?性价比宠物空气净化器测评
  • 介绍 Apache Spark 的基本概念和在大数据分析中的应用
  • 剑指offer 30. 包含min函数的栈
  • Redis7基础篇(六)
  • MySQL支持的数据类型
  • nginx: [emerg] the “ssl“ parameter requires ngx_http_ssl_module in nginx.conf
  • 主机字节序和网络字节序
  • golang每日一库——casbin开源的访问控制框架
  • 新手教学系列——利用 Loguru 对日志进行分类处理
  • 人工智能最全合集!中国人工智能系列白皮书(360页PDF限免下载)
  • Vue中字节流格式的 Base64编码转换为 Blob 对象保存成wav的音频文件
  • MobPush扩展业务功能设置