文章
56
粉丝
1
获赞
100
访问
22.2k
 
#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,m,a[100][2],num[10001]={0};
	cin>>n>>m;
	for(int i=0;i<m;i++){
		cin>>a[i][0]>>a[i][1];
	}
	for(int i=0;i<m;i++){
		for(int j=a[i][0];j<=a[i][1];j++){
			num[j]=1;
		}
	}
	int res=0;
	for(int i=0;i<=n;i++){
		if(num[i]==0){
			res++;
		}
	}
	cout<<res<<endl;
	return 0;
}
这一题我的思路是,把数组num作为整个公路,公路范围为1~10000,拿num下标作为树,则num应该为[10001],并且把数组中所有的值都初始化为0;此时开始去除区域内的树,只需要把对应下标的值修改为1即可(做个标记,表示这个下标的树已经被去掉);最后遍历0~n,若num值为0则表示树还存在。
登录后发布评论
暂无评论,来抢沙发