暴力解,

  1. 创建数组tree,长度为l+1,初始化tree数组每一位都是1,表示该树存在;
  2. 遍历数组tree,将输入区间内的树”删去“,即将对应的值置0,表示该树被删去;
  3. 遍历数组tree,对数值为1的树计数;
  4. 输出计数count。

时间复杂度O(n2),空间复杂度O(l)

#include <cstring>
#include <iostream>
using namespace std;

int main() {
    int l, m;
    while (cin >> l >> m) { // 注意 while 处理多个 case
        int tree[l+1];
        int from, to, count = 0;
        for (int i = 0; i <= l; i++){
            tree[i] = 1;
            //cout<<tree[i]<<endl;
        }
        for (int i = 0;i < m; i++){
            cin >> from >> to;
            for (int j = from; j <= to; j++){
                tree[j] = 0;
            }
        }
        for (int i = 0; i <= l; i++){
            if (tree[i] == 1) count++;
            //cout<<tree[i]<<endl;
        }
        cout << count << endl;
    }
}
// 64 位输出请用 printf("%lld")