题解 | 剩下的树

剩下的树

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;
}


全部评论

相关推荐

03-23 23:00
黄淮学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务