解决代码:
//错误原因:没有分清程序循环结束的条件(没有统计0米的树,而是统计了1~n+1棵树)
//程序解题思路:给树打上标记,如果被挖出则更改标记,最后统计没有更改标记的树(标记法)
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1000001;
int a[maxn];
int main(){
int l; cin >> l;
int sum = 0;
memset(a,0,sizeof(a)); //初始标记为0
int m; cin >> m;
for(int i = 1; i <= m; i++){
int start,end;
cin >> start >> end;
for(int j = start; j <= end; j++) a[j] = 1; //如果被挖出则更改标记为1
}
for(int i = 0; i <= l; i++){
if(!a[i]) sum++; //统计没有更改标记的树
}
cout << sum << endl;
}