模拟简单题

  1. 首先我们要定义一个数组用来标记访问过的树
  2. 从左往右遍历只要是出现在区间的树我们就标记它为1(初始化为0)
  3. 最后我们只需统计未被标记的树就是答案了
  4. 这里需要注意的是,题目要求的是从0开始,所以要稍微注意一下
    #include <bits/stdc++.h>
    #define ll long long
    using namespace std;
    const int maxn = 1e5 + 5;
    int a[maxn], vis[maxn];
    int main()
    {
      int l, m, x, y, ans;
      while (~scanf("%d%d", &l, &m))
      {
          ans = 0;
          for (int i = 1; i <= m; ++i)
          {
              scanf("%d%d", &x, &y);
              for (int i = x; i <= y; ++i)
                  vis[i] = 1;
          }
          for (int i = 0; i <= l; ++i)
              if (!vis[i])
                  ++ans;
          printf("%d\n", ans);
      }
    }