原题链接:校门外的树
解题思路: 将有树的点标记为1,没有树的点标记为0
注意事项: 【马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,**即0,1,2,……,L,都种有一棵树。】说明由L+1棵树
【现在要把这些区域中的树(包括区域端点处的两棵树)移走。】说明要移走 (终止点-起始点+1)棵树
参考代码:
#include<stdio.h> int main() { int L,M,j,i; // L马路的长度;M区域的数目;i,j作循环变量; int start,end,count=0; scanf("%d %d",&L,&M); if((L<1 || L>10000) || (M<1 || M>100)) return 0; int a[L+1]; // 定义一个存储L+1长度的数组 for(i=0;i<=L;i++){ // 初始化数组内每一个元素为1,代表都有种树 a[i] = 1; } for(k=1;k<=M;k++){ scanf("%d %d",&start,&end); for(j=start;j<=end;j++){ // 遍历起始点到终止点;将值标记为0,代表树被移除 a[j] = 0; } } for(i=0;i<=L;i++){ // 再次遍历,计算剩余的树的数目 if(a[i]==1){ count++; } } printf("%d",count); return 0; }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复