解题思路:
用数组模拟坐标轴上的整数坐标,也代表可以种树的地方。
例如:char L[11] ==> 1 1 1 1 1 1 1 1 1 1 1 ==> 1代表种了树
|___|___|___|___|___|___|___|___|___|___|
0 1 2 3 4 5 6 7 8 9 10 ==> 整数坐标位置
由上可知最多可以种11棵树。
如果 1-6 需要清理 即将坐标1-6的 1 变成 0:
1 0 0 0 0 0 0 1 1 1 1 ==> 1代表种了树
|___|___|___|___|___|___|___|___|___|___|
0 1 2 3 4 5 6 7 8 9 10 ==> 整数坐标位置
注意事项:
定义数组时,数组的大小需要比L的最大值大1,否则不满足题意(虽然也许也能过)。
参考代码:
#include <bits/stdc++.h> using namespace std; int main(){ char L[10001]={0}; int a,n; //树的数量与需要清理的区域数量 int x,y; //清理的区域 int num=0; //记录最后留下来的1数量(树木的数量) cin>>a>>n; for(int i=0;i<=a;i++) //种树(将0-a变为1) L[i]=1; while(n--){ cin>>x>>y; for(int i=x;i<=y;i++){ L[i]=0; //挖树(将x-y变成0) } } for(int i=0;i<=a;i++) //数一下a以内还剩几棵树 if(L[i]) num++; cout<<num<<endl; return 0; }
0.0分
23 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复