• 校门外的树4


    校门外的树4
    题目描述
    某校大门外长度为L 的马路上有一排树,每两棵相邻的树之间的间隔都是1 米。我们可
    以把马路看成一个数轴,马路的一端在数轴1 的位置,另一端在L 的位置;数轴上的每个整
    数点,即1,2,……,L,都种有一棵树。
    由于学校要盖楼。所以要将一些比较高的树砍下来当木材。学校想知道砍下某些树之后,
    还剩下多少段连续树的树木。
    比如马路的长度是5,那么1,2,3,4,5 处各有一颗树。他们的高度分别是2,7,3,5,1。现在
    学校想砍掉最高的1 颗树。那么,就会剩下2 段树木,一段是从下标1 开始到下标1 结束的
    树,另一段是从下标为3 开始到下标为5 结束的树。
    输入格式
    输入的第一行有两个整数L(1 <= L <= 106)和M(1 <= M <= 105),L 代表马路的长度,
    M 代表总共砍M 次树。
    第二行包含L 个不相同的正整数,为树木的高度h(0< h < 108)。
    第三行包含M 个正整数k[i],表示学校想砍掉最高的k[i]颗树(0 < k[i] < 105)。
    保证树木不会被砍光
    输出格式
    总共输出M 行,学校每次砍完一次树(k 颗),输出一个数字,这个数字占一行,表示剩
    下多少段树。
    样例输入
    5 2
    2 7 3 5 1
    1 1
    样例输出
    2
    3
    提示
    成吨的输入量,请进行IO 优化。
    本题时间限制3 秒

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 #include<cmath>
     5 using namespace std;
     6 int i,j,m,n,l,da = 1,vis[1000005],op,t = 0;
     7 struct node
     8 {
     9     int h;
    10     int x;
    11 }a[1000005];
    12 int cmp(node a,node b)
    13 {
    14     return a.h > b.h;
    15 }
    16 int main()
    17 {
    18     scanf("%d %d",&l,&m);
    19     for(i = 1;i <= l;i++)
    20     {
    21         vis[i] = 1;
    22         scanf("%d",&a[i].h);
    23         a[i].x = i;
    24     }
    25     sort(a + 1,a + 1 +l,cmp);
    26     for(i = 1;i <= m;i++)
    27     {
    28         scanf("%d",&op);
    29         for(j = op;j >= 1;j--)
    30         {
    31             t = t + 1;
    32             a[t].h = 0;
    33             if(vis[a[t].x - 1] == 1 && vis[a[t].x + 1] == 1)
    34             da++;
    35             else if(vis[a[t].x - 1] != 1 && vis[a[t].x + 1] != 1)
    36             da--;
    37             vis[a[t].x] = 0;
    38         }
    39         printf("%d",da);
    40         if(i != m)
    41         printf("
    ");
    42     }
    43     return 0;
    44 }
  • 相关阅读:
    R语言做文本挖掘 Part4文本分类
    在VS2005中使用原来的IIS调试Web程序(像VS2003一样)
    “提高一下dotnet程序的效率一”中关于exception的问题
    asp.net Cookies 转码的问题 中文丢失
    静态构造函数
    js在firefox中的问题
    模板引擎的一种实现
    .NET面试题,看看你的水平[转]
    转载 软件架构师应该具备的素质(Enterprise Solution Architects and Leadership)
    用正则表达式提取url中的Querystring参数
  • 原文地址:https://www.cnblogs.com/rax-/p/9799779.html
Copyright © 2020-2023  润新知