zoukankan      html  css  js  c++  java
  • 【NOIP2018Day1T1】【洛谷P5019】铺设道路

    问题描述

    输入格式

    输出格式

    样例输入

    6  
    4 3 2 5 3 5

    样例输出

    9

    提示

    数据范围

    题解

    用最短时间填平道路上所有的坑。。。

    显然坑是从下往上填的,但是其实这样不好想算法,我们不妨倒过来,从上往下填

    为了时间最短,每一次一定选最长的区间填坑

    设ans表示填完所有坑的最短时间

    对于第i个坑(i>1),如果di<di-1那么填第i-1个坑的时候已经顺便把第i个坑填满了,所以就不用管第i个坑了

    如果di>di-1,那么填完第i-1个坑后第i个坑还没填满,先不管后面的坑怎么填,把第i个坑填满,还需要di-di-1天(每一天都选择以第i个坑为端点的最长的区域),即ans加上di-di-1

    对于第1个坑,由于一定要填满,ans初始值为d1

     1 #include <cstdio>
     2 int n;
     3 long long d[100005],ans;
     4 int main()
     5 {
     6     int i;
     7     scanf("%d",&n);
     8     for (i=1;i<=n;i++)
     9       scanf("%lld",&d[i]);
    10     ans=d[1];
    11     for (i=2;i<=n;i++)
    12       if (d[i]>d[i-1])
    13         ans+=(d[i]-d[i-1]);
    14     printf("%lld",ans);
    15     return 0;
    16 } 
  • 相关阅读:
    SpringCache使用
    SpringDataRedis使用
    Spring data jpa使用
    webpack的安装
    Vue基本使用
    Swagger使用
    gulp常用插件之gulp-notify使用
    gulp常用插件之gulp-beautify使用
    gulp常用插件之gulp-uglify使用
    gulp常用插件之gulp-size使用
  • 原文地址:https://www.cnblogs.com/rabbit1103/p/13455659.html
Copyright © 2011-2022 走看看