题目描述
已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。
现在要把这些区域中的树(包括区域端点处的两棵树)移走。
你的任务是计算将这些树都移走后,马路上还有多少棵树。
样例
#include<iostream>
//朴素算法:给一个点一个bool类型变量,在初始true,驱动false
//最坏统计区间的个数
using namespace std;
const int N=1e5+1
bool q[N]; //记录点
int main()
{
int n,m;
cin>>n>>m; //输入马路长度 0—L 区域
for(int i=0;i<=n;i++)q[i]=true;//初始区域
while(m--)//移走区间 个数
{
int a,b;
cin>>a>>b;//移除区间
for(int i=a;i<=b;i++) q[i]=false;//置false.表移除
}
//最后统计区间的树个数
int res=0;
for(int i=0;i<=n;i++){
if(q[i]) res++;
}
cout<<res;
}