校门外的树
题意
我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置,在路段上修路,
修路会覆盖掉树,计算还剩多少树
思路
- 模拟种树,种了树数组就赋值为1
- 依次读入,砍了树就赋值为0
- 最好再读取数组,如果树还再(数组是1)答案就+1
实现步骤
- 其实和思路是一样的捏(* ^ _ ^ *)
代码
#include<stdio.h>
int main()
{
int l,j,m,a[10005],c=0,i,x,y;
for(i=0;i<=10000;i++)
{
a[i]=1;//假设路上没有树,我们先种树,1就是种好树了
}
scanf("%d%d",&l,&m);
for(i=1;i<=m;i++)
{
scanf("%d%d",&x,&y);//读入路段
for(j=x;j<=y;j++)//模拟砍树
{
a[j]=0;//只要在这个路段上的树,直接砍了(光头强狂喜)
}
}
for(i=0;i<=l;i++)//树砍完了,开始算还剩多少
{
if(a[i]==1)//如果有树
{
c++;//那么结果+1
}
}
printf("%d\n",c);
return 0;
}