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

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

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


由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。
 输入输出格式 Input/output
输入格式:
输入文件tree.in的第一行有两个整数L(1 <= L <= 10000)和 M(1 <= M <= 100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。
输出格式:
输出文件tree.out包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。
 输入输出样例 Sample input/output
样例测试点#1
输入样例:

500 3

150 300
100 200
470 471

输出样例:

298

说明 description
NOIP2005普及组第二题

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

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

思路:这题还算简单,我们可以用1来代表还有树,0代表被砍掉了,先初始化数组都为1(都种上了树),再扫描每个区间并把每个区间的1变为0,最后再扫一遍,若是1,计数器++。

代码如下:

1 #include 
2 int main() 3 { 4 int L,M,i,j,sum=0; 5 int tree[10010]; 6 int kaishi[102],jieshu[102]; 7 scanf("%d%d",&L,&M); 8 for(i=0;i<=L;i++)//初始化都为1 9 tree[i]=1; 10 for(i=0;i

 

转载于:https://www.cnblogs.com/geek-007/p/4297036.html

你可能感兴趣的文章
BZOJ 3456: 城市规划(dp+多项式求逆)
查看>>
Web Service 学习
查看>>
聚类算法:K-Means
查看>>
kafka operation
查看>>
变量的比较之equals 与 == 的区别
查看>>
[LeetCode]160. Intersection of Two Linked Lists
查看>>
OOP三言两语
查看>>
SAS对数据变量的处理
查看>>
行云管家堡垒机 导入腾讯云主机
查看>>
P4149 [IOI2011]Race
查看>>
题目1065:输出梯形
查看>>
C#在dataGridView中遍历,寻找相同的数据并定位
查看>>
ADO.NET+Access: 3,参数 @departmentName 没有默认值
查看>>
CSS实现不固定宽度和高度的自动居中
查看>>
Maven pom.xml 元素配置说明(一)
查看>>
1080i减少带宽
查看>>
EF关闭自动创建数据库表的方式
查看>>
12、OpenCV Python 图像梯度
查看>>
VS Code 使用小技巧
查看>>
JS基础_break和continue
查看>>