P1028 [NOIP 2005 普及组] 校门外的树
题目链接
题解
建立一个数组a,循环读入x和y后,将a[x]到a[y]都标记为移走
再循环计数数组中未标记(也就是没有移走)的个数
代码如下:
#include <cstdio>
#include <cstring>
using namespace std;
bool a[10005];
int main() {
int L, M, x, y, t = 0;
cin >> L >> M;
for (int i = 1; i <= M; i++) {
cin >> x >> y; // 读入x和y
for (int j = x; j <= y; j++) {
a[j] = 1; // 标记为移走
}
}
for (int i = 0; i <= L; i++) {
if (a[i] == 0) t++; // 统计未标记的个数
}
cout << t; // 输出
return 0;
}