解题思路:
    用数组模拟坐标轴上的整数坐标,也代表可以种树的地方。

    例如: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.0分

23 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论