一道最经典的模拟题。
题目大意:有一条长度为l + 1的树,要去除u~v范围内的所有树,去除m次,问最后还剩下多少树。
这题范围很小,可以考虑暴力。用bool数组来记录位置为i的数有没有移走(0代表没移走,1代表移走),每一次去除就将u~v全部设为一(全部移走),最后统计0的数量就行了。
AC code:
#include <iostream>
using namespace std;
int a[1000001];
int main()
{
int l,m,u,v,d = 0;
cin >> l >> m;
for(int i = 1;i <= m;i ++)
{
cin >> u >> v;
for(int j = u;j <= v;j ++)a[j] = 1;//移除
}
for(int i = 0;i <= l;i ++) if(a[i] == 0) d ++;//范围是0~l,不为1~l
cout << d;
return 0;
}