百练noi 06:校门外的树
来源:互联网 发布:千方百计软件下载 编辑:程序博客网 时间:2024/06/04 17:46
06:校门外的树
- 查看
- 提交
- 统计
- 提问
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。
由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。
- 输入
- 第一行有两个整数L(1 <= L <= 10000)和 M(1 <= M <= 100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。
对于20%的数据,区域之间没有重合的部分;
对于其它的数据,区域之间有重合的情况。 - 输出
- 包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。
- 样例输入
500 3150 300100 200470 471
- 样例输出
298
- 来源
NOIP2005复赛 普及组 第二题
代码:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N = 10005;int vis[N];int main(){int l,m,left,right;scanf("%d%d",&l,&m);memset(vis, -1, sizeof(int) * (l + 1));while(m--){scanf("%d%d",&left,&right);memset(vis + left, 0, sizeof(int) * (right - left + 1));}int cnt = count(vis, vis + l + 1, -1);printf("%d\n",cnt);return 0;}
阅读全文
0 0
- 百练noi 06:校门外的树
- 百练 2808 校门外的树
- 百练_2808:校门外的树
- 校门外的树(noi 1.6-06)
- POJ 百练 2808: 校门外的树
- poj 百练 2808:校门外的树
- poj 百练 2808 校门外的树
- 百练OJ:2808:校门外的树
- 【题解】洛谷1047 校门外的树(NOI…
- 06:校门外的树
- 校门外的树
- 校门外的树
- 校门外的树
- 校门外的树
- 校门外的树
- 校门外的树
- 校门外的树
- 校门外的树
- c51上跑smallrtos 之lcd1602任务
- 如何将VS向导生成的DLL工程切换到EXE配置
- JavaScript——Array类型
- Centos 安装mysql 出现'Access denied for user 'root'@'localhost' (using password: NO)'
- Dubbo 源码学习笔记 —— SPI的机制体现
- 百练noi 06:校门外的树
- arm linux中一些重要的宏及地址定义
- [Baltic2007]Sound静音问题
- tomcat多版本共存梳理
- Unity3D 游戏画面像素与单位关系,简介。
- #pragma pack(n)解析
- AndroidStudio Annotation 创建注释模板
- MVC 导入excel
- JS数组的map方法