题解 | 校门外的树
校门外的树
https://www.nowcoder.com/practice/0e8cfc82936048769af45967f3c4ef7e
#include <stdio.h>
#include <stdlib.h>
int main() {
int L,M;
scanf("%d %d",&L,&M);
int *arr=(int*)malloc(L*sizeof(int));
for(int i=0;i<=L;i++){
arr[i]=1;//初始化树全在
}
for(int j=0;j<M;j++){
int m,n;
scanf("%d %d",&m,&n);
for(int k=m;k<=n;k++){
arr[k]=0;//区间内的树移除
}
}
int len=0;
for(int q=0;q<=L;q++){
if(arr[q]==1){
len++;
}
}//计算最终1的个数就是树的个数。这样不用考虑复杂的重合区间问题
printf("%d\n",len);
return 0;
}
