题解 | 剩下的树
剩下的树
https://www.nowcoder.com/practice/f5787c69f5cf41499ba4706bc93700a2
//移树
#include<cstdio>
#include<vector>
using namespace std;
int main(){
int L,M; //长度为L,移走M次
while(scanf("%d %d",&L,&M)!=EOF){
//1.种树
vector<int> vec(L+1); //动态数组vec,长度为L+1,下标有效范围[0,L]
for(int i=0;i<=L;i++){ //给数组赋值,种树
vec[i]=0;
}
//2.移树
for(int i=0;i<M;i++){ //M组数据输入
int left,right;
scanf("%d %d",&left,&right); //输入区间[left,right]
for(int j=left;j<=right;j++){ //移走区间内的树
vec[j]=1;
}
}
//3.统计活的树
int num=0;
//遍历动态数组,用迭代器
vector<int>::iterator it;
for(it=vec.begin();it!=vec.end();it++){
if(*it==0){ //还有树,就让统计加一
num++;
}
}
printf("%d\n",num);
/*for(int i=0;i<=L;i++){
if(vec[i]==0){
num++;
}
}
printf("%d\n",num);*/
}
return 0;
}
查看25道真题和解析