// // Created by alleyf on 2023/6/24. // #include<bits/stdc++.h> using namespace std; const int MAXL = 100001; int main() { bool flag[MAXL]; int l, m, num; cin >> l >> m; num = l + 1; for (int i = 0; i <= l; ++i) { flag[i] = true; }; while (m--) { int left, right; cin >> left >> right; for (int i = left; i <= right; ++i) { if (flag[i]) { flag[i] = false; num--; } } } cout << num; }
- 使用一个l+1长度的array存储所有树的存在状态,初始化所有树的状态为真;
- 根据区间循环判每棵树的状态,若为真则修改树输出总数的状态为假并将树的总数自减;
- 输出剩余树的数量。