题干解读:给定一个区间长度为L的数轴,每过一个单位长度就种一颗树,又给出了M个区间,在这些区间内的树都会被移除,求剩下的树的个数;

解题思路:使用数组表示树的状况,初始化为1,如果被移除就设为2,最后剩下的值为1的位置的个数就是剩下的树的个数.

#include <iostream>
using namespace std;

int main() {
    int L,M;
    cin>>L>>M;
    int l,r;
    int f[L+1];//标记数组,用于表示马路上位置为L的树是否被移除
    for(int i=0;i<=L;i++){
        f[i] = 1;//1表示未被移除,2表示被移除.
    }

    for(int k=0;k<M;k++){
        cin>>l>>r;
        for(int i=l;i<=r;i++){
            f[i] = 2;//表示被移除.
        }
    }
    int num;
    for(int i=0;i<=L;i++){
        if(f[i] == 1){
            num++;
        }
    }
    cout<<num;
}