码迷,mamicode.com
首页 > 其他好文 > 详细

P1047 校门外的树 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是11米。我们可以把马路看成一个数轴,马路的一端在数轴00的位置,另一端在LL的位置;数轴上的每个整数点,即0,1,2,…,L0,1,2,…,L,都种有一棵树。 由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。

时间:2018-10-27 21:09:06      阅读:604      评论:0      收藏:0      [点我收藏+]

标签:ret   映射   访问   遍历   包含   数组   main   clu   turn   

#include<stdio.h>  
  
int main()  
{  
    int L, M, i, j, n;  
    int a[10001], b[10001];  
    scanf("%d %d",&L, &M);   //输入L和M  
    n = M*2;      //循环输入b数组0~n的数据  
    for(i=0; i<n; i+=2)  
    {  
        scanf("%d %d", &b[i], &b[i+1]);  
    }  
    for(i=0; i<=L; i++)     //循环给a数组L个元素赋值  
    {  
        a[i] = i;  
    }  
    int r, s;  
    for(i=0; i<n; i+=2)  //遍历访问数组b的各个区间  
    {  
        r = b[i];   //区间起始点  
        s = b[i+1]; //区间终点  
        for(j=r; j<=s; j++) //把数组b各个区间内元素在数组a中映射为0  
        {  
            a[j] = -1;  
        }  
    }  
    int k=0;    //k用来统计不是0的个数,k赋值为1(数组a中原本包含一个0,此时加上)  
    for(i=0; i<=L; i++)  
    {  
        if(a[i] != -1)  
        {  
            k++;    //用来统计非0的个数,即不在数组b区间内的数的个数  
        }  
    }  
    printf("%d", k);  
  
    return 0;  
} 

P1047 校门外的树 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是11米。我们可以把马路看成一个数轴,马路的一端在数轴00的位置,另一端在LL的位置;数轴上的每个整数点,即0,1,2,…,L0,1,2,…,L,都种有一棵树。 由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。

标签:ret   映射   访问   遍历   包含   数组   main   clu   turn   

原文地址:https://www.cnblogs.com/Tristan-Adams/p/9862805.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!