文章
19
粉丝
0
获赞
1
访问
375
#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则表示树还存在。
登录后发布评论
暂无评论,来抢沙发