• CODEVS 3288 积木大赛


    【题目描述 Description】

    春春幼儿园举办了一年一度的“积木大赛”。今年比赛的内容是搭建一座宽度为 n 的大厦,大厦可以看成由 n 块宽度为1的积木组成,第i块积木的最终高度需要是hi。
    在搭建开始之前,没有任何积木(可以看成 n 块高度为 0 的积木)。接下来每次操作,小朋友们可以选择一段连续区间[L,R],然后将第 L 块到第 R 块之间(含第 L 块和第 R 块)所有积木的高度分别增加1。
    小 M 是个聪明的小朋友,她很快想出了建造大厦的最佳策略,使得建造所需的操作次数最少。但她不是一个勤于动手的孩子,所以想请你帮忙实现这个策略,并求出最少的操作次数。

    输入描述 Input Description

    输入包含两行,第一行包含一个整数 n,表示大厦的宽度。
    第二行包含 n 个整数,第i个整数为hi。

    输出描述 Output Description

    仅一行,即建造所需的最少操作数。

    样例输入 Sample Input

    5
    2 3 4 1 2

    样例输出 Sample Output

    5

    【数据范围及提示 Data Size & Hin】t

    其中一种可行的最佳方案,依次选择 [1,5] [1,3] [2,3] [3,3] [5,5]
    对于 30%的数据,有1 ≤ n ≤ 10;
    对于 70%的数据,有1 ≤ n ≤ 1000;
    对于 100%的数据,有1 ≤ n ≤ 100000,0 ≤ hi ≤ 10000。

    【解题思路】

    这个题我承认我刚开始想多了,考虑了各种情况,再然后我发现其实这个题很水,根本不用考虑低谷的情况,因为低谷在填高峰的时候一定会填起来,所以扫到一个值,只用和它前面的值相比较,不比它大就加和,不比它大就跳过,最后加上第一个值。。。

    代码稍微有点短⊙﹏⊙b汗

     1 program game;
     2 var ans,n,i:Longint;
     3     a:array[1..100000] of longint;
     4 begin
     5     read(n);
     6     for i:=1 to n do read(a[i]);
     7     for i:=2 to n do
     8     if a[i]>a[i-1] then ans:=ans+a[i]-a[i-1];
     9     writeln(a[1]+ans);
    10 end.
  • 相关阅读:
    tile38 复制配置
    The Guardian’s Migration from MongoDB to PostgreSQL on Amazon RDS
    tile38 一款开源的geo 数据库
    sqler sql 转rest api 的docker 镜像构建(续)使用源码编译
    sqler sql 转rest api javascript 试用
    sqler sql 转rest api redis 接口使用
    sqler sql 转rest api 的docker image
    sqler sql 转rest api 的工具试用
    apache geode 试用
    benthos v1 的一些新功能
  • 原文地址:https://www.cnblogs.com/wuminyan/p/4746180.html
Copyright © 2020-2023  润新知