• Java实现 蓝桥杯 算法提高 秘密行动


    试题 算法提高 秘密行动

    资源限制
    时间限制:1.0s 内存限制:256.0MB
    问题描述
      小D接到一项任务,要求他爬到一座n层大厦的顶端与神秘人物会面。这座大厦有一个神奇的特点,每层的高度都不一样,同时,小D也拥有一项特殊能力,可以一次向上跳跃一层或两层,但是这项能力无法连续使用。已知向上1高度消耗的时间为1,跳跃不消耗时间。由于事态紧急,小D想知道他最少需要多少时间到达顶层。
    输入格式
      第一行包含一个整数n,代表楼的高度。

    接下来n行每行一个整数ai,代表i层的楼层高度(ai <= 100)。
    输出格式
      输出1行,包含一个整数,表示所需的最短时间。
    样例输入
    5
    3
    5
    1
    8
    4
    样例输出
    1
    数据规模和约定
      对20%的数据,n<=10
      对40%的数据,n<=100
      对60%的数据,n<=5000
      对100%的数据,n<=10000

     
    
    import java.util.Scanner;
    
    public class 秘密行动 {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            int [] num = new int [n];
            for (int i=0;i<n;i++){
                num[i]=sc.nextInt();
            }
            sc.close();
    
            int  [] []dp = new int [n+1][2];
            //第一个爬上来的是第一层的长度
            dp[1][0]=num[0];
            //跳上来的长度为0
            for (int i=2;i<=n;i++){
                //dp[i][0]就是爬上来的所以要加长度,跳完爬或者爬完继续爬
                dp[i][0]=Math.min(dp[i-1][0],dp[i-1][1])+num[i-1];
                //dp[i][1]是跳上来得到,他只能在爬上来的里面选
                dp[i][1]=Math.min(dp[i-1][0],dp[i-2][0]);
            }
            System.out.println(Math.min(dp[n][0],dp[n][1]));
        }
    }
    
    
  • 相关阅读:
    python内建eval, exec 和exec函数的用法
    wxPython控件学习之wx.grid.Grid (包括对GridCellEditor和GridCelRender的扩展,以支持更多的grid cell 样式, 以GridCellColorEditor为例)
    wxPython控件学习之wx.ComboBox
    tar 解压缩命令
    ios是否安装了某应用
    iPhone IOS中DEB如何安装
    一种简便获取iPhone IMEI 的方法
    iOSOpenDevtroubleshoot
    Mac&iOS Socket编程
    Debian Binary Package Building HOWTO
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12946778.html
Copyright © 2020-2023  润新知