剩下的树

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剩下的树相关的知识,希望对你有一定的参考价值。

题目描述:
  有一个长度为整数L(1<=L<=10000)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在0,1,2,...,L共L+1个位置上有L+1棵树。     现在要移走一些树,移走的树的区间用一对数字表示,如 100 200表示移走从100到200之间(包括端点)所有的树。     可能有M(1<=M<=100)个区间,区间之间可能有重叠。现在要求移走所有区间的树之后剩下的树的个数。
 
输入:
  两个整数L(1<=L<=10000)和M(1<=M<=100)。     接下来有M组整数,每组有一对数字。
输出:
  可能有多组输入数据,对于每组输入数据,输出一个数,表示移走所有区间的树之后剩下的树的个数。
样例输入:
  500 3
  100 200
  150 300
  470 471
样例输出:
  298
#include<stdio.h>
const int maxn=10000;

int main(){
    int n=0, m=0;
    while(scanf("%d %d", &n, &m) != EOF){
        int cnt=0;
        int trees[maxn]={0};//保存路旁的树,0代表有树,1代表没树 
        for(int i=0; i < m; i++){
            int up, low;//砍树区间的上界和下界 
            scanf("%d %d", &low, &up);
            for(int j=low; j <= up; j++){
                trees[j]=1;
            } 
        }//砍树结束,开始计数 
        
        for(int i=0; i <= n; i++){
            if(trees[i] == 0) cnt++;
        }
        printf("%d\n", cnt);
    }
    
    return 0;
}

 

以上是关于剩下的树的主要内容,如果未能解决你的问题,请参考以下文章

Codeup_575A_剩下的树

机试指南hash的应用练习题2剩下的树

清华大学机试 剩下的树 Easy *贪心的区间思想

CF917DStranger Trees 树形DP+Prufer序列

#4700. Access

[题解]HDU4035 Maze