mrzs


私信TA

用户名:mrzs

访问量:5194

签 名:

等  级
排  名 2048
经  验 2485
参赛次数 0
文章发表 4
年  龄 19
在职情况 学生
学  校 湖北专职专高
专  业 电脑

  自我简介:

千年琵琶万年筝,HelloWorld练一生。

TA的其他文章

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

    例如: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 人评分

  评论区

2024-02-02 15:52:27
  • «
  • 1
  • »