博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷P1047 校门外的树
阅读量:4982 次
发布时间:2019-06-12

本文共 1039 字,大约阅读时间需要 3 分钟。

题目描述

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

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

输入输出格式

输入格式:

第一行有 222 个整数 L(1≤L≤10000)L(1 \le L \le 10000)L(1L10000)M(1≤M≤100) M(1 \le M \le 100)M(1M100)LLL 代表马路的长度, MMM 代表区域的数目, LLLMMM 之间用一个空格隔开。

接下来的 MMM 行每行包含 222 个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。

输出格式:

111 个整数,表示马路上剩余的树的数目。

输入输出样例

输入样例#1:
500 3150 300100 200470 471
输出样例#1:
298

说明

NOIP2005普及组第二题

对于 $20%$ 的数据,区域之间没有重合的部分;

对于其它的数据,区域之间有重合的情况。

#include
int main(){ int i,j,L,a[2],b[10001],M,count=0; scanf("%d%d",&L,&M); for(i=0;i<=L;i++) b[i]=0; for(i=1;i<=M;i++){ for(j=0;j<2;j++) scanf("%d",&a[j]); for(j=0;j<=L;j++) if(j>=a[0]&&j<=a[1]) b[j]=1; } for(i=0;i<=L;i++) if(b[i]==0) count++; printf("%d",count); return 0;}

转载于:https://www.cnblogs.com/aerer/p/9931101.html

你可能感兴趣的文章
Mark Down 尝试
查看>>
第三节:使用Log4net和过滤器记录异常信息,返回异常给前端
查看>>
fedora的选择
查看>>
AlphaPose论文笔记《RMPE: Regional Multi-person Pose Estimation》
查看>>
模糊查询和聚合函数
查看>>
[批处理]批量将文件名更名为其上级目录名
查看>>
如何查找ORACLE中的跟踪文件
查看>>
SQL Server将一列的多行内容拼接成一行
查看>>
Spring Controller RequestMapping
查看>>
socket
查看>>
小程序 跳转问题 (来源见注明)
查看>>
JBPM4入门——9.自动节点单线执行
查看>>
//停止关联的进程
查看>>
SQL 生成公曆和農曆對照數據,公曆查找農曆和農曆查找公曆函數
查看>>
为何场效应管要用UGD与UGS(off)来比较判断夹断情况?
查看>>
.pem证书转xml格式字符串(.net)
查看>>
js构建ui的统一异常处理方案(二)
查看>>
三线程连续打印ABC
查看>>
ECharts
查看>>
初识网络爬虫
查看>>