题干解读:给定一个区间长度为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;
}

京公网安备 11010502036488号