23年蓝桥杯省赛 动态规划DP

动态规划 就是:给定一个问题,我们把它拆成一个个子问题,直到子问可以直接解决。然后把子问题的答案保存起来,以减少重量计算,再根据子问题答察反推,得出问解的一种方法。

题目:

这天,一只蜗牛来到了二维坐标系的原点。

在 x 轴上长有 n 根竹竿。它们平行于 y 轴,底部纵坐标为 0,横坐标分别为 x1, x2, ..., xn。竹竿的高度均为无限高,宽度可忽略。蜗牛想要从原点走到第 n 个竹竿的底部也就是坐标 (xn, 0)。它只能在 x 轴上或者竹竿上爬行,在 x 轴上爬行速度为 1 单位每秒;由于受到引力影响,蜗牛在竹竿上向上和向下爬行的速度分别为 0.7 单位每秒和 1.3 单位每秒。

为了快速到达目的地,它施展了魔法,在第 i 和 i + 1 根竹竿之间建立了传送门(0 < i < n),如果蜗牛位于第 i 根竹竿的高度为 ai 的位置 (xi , ai),就可以瞬间到达第 i + 1 根竹竿的高度为 bi+1 的位置 (xi+1, bi+1),请计算蜗牛最少需要多少秒才能到达目的地。

输出格式:

输入共 1 + n 行,第一行为一个正整数 n;

第二行为 n 个正整数 x1, x2, . . . , xn;

后面 n − 1 行,每行两个正整数 ai , bi+1。

样例输入:

3
1 10 11
1 1
2 1

样例输出:

4.20

DP三步走

1.确定dp元素

2.明确状态,得到状态转移方程

3.数据初始化

package test;import java.io.*;public class Main {public static StreamTokenizer st=new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));public static void main(String[] args) throws IOException{int n=nextInt();int[] x=new int[n];int[] a=new int[n];int[] b=new int[n];double[] footMin=new double[n];double[] doorMin=new double[n];for(int i=0;i<n;i++){x[i]=nextInt();}for(int i=0;i<n-1;i++){a[i]=nextInt();b[i]=nextInt();}footMin[0]=x[0]*1.0;doorMin[0]=x[0]*1.0+a[0]*1.0/0.7;int d;for(int i=1;i<n;i++) {d=x[i]-x[i-1];if(b[i-1]>a[i]) {doorMin[i]=Math.min(doorMin[i-1]+(b[i-1]-a[i])*1.0/1.3,footMin[i-1]+d+a[i]*1.0/0.7);}else {doorMin[i]=Math.min(doorMin[i-1]+(a[i]-b[i-1])*1.0/0.7,footMin[i-1]+d+a[i]*1.0/0.7);}footMin[i]=Math.min(doorMin[i-1]+b[i-1]*1.0/1.3,footMin[i-1]+d*1.0);}System.out.println(String.format("%.2f",footMin[n-1]));	
}private static int nextInt() throws IOException{// TODO 自动生成的方法存根st.nextToken();return (int)st.nval;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/595846.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gopeed够快下载器支持全平台使用

介绍 Gopeed&#xff08;全称 Go Speed&#xff09;&#xff0c;直译过来中文名叫做够快下载器&#xff08;不是狗屁下载器&#xff01;&#xff09;&#xff0c;是一款由GolangFlutter开发的高速下载器&#xff0c;支持&#xff08;HTTP、BitTorrent、Magnet&#xff09;协议下…

C 练习实例97 - 读磁盘 写磁盘

题目&#xff1a;从键盘输入一些字符&#xff0c;逐个把它们送到磁盘上去&#xff0c;直到输入一个‘#’为止 在桌面新建一个hello.txt文件&#xff0c;内容示例&#xff1a; 代码&#xff1a; #include <stdio.h> #include <stdlib.h>int main() {FILE *fp; //文…

【论文笔记】MetaPruning: Meta Learning for Automatic Neural Network Channel Pruning

Abstract 提出了一种新颖的元学习方法&#xff0c;用于自动剪枝非常深的神经网络。首先训练一个称为PruningNet的元网络&#xff0c;该网络能够针对目标网络生成权重参数&#xff0c;以生成任何剪枝结构。使用简单的随机结构抽样方法来训练PruningNet。然后&#xff0c;应用进…

Scala第十八章节(Iterable集合、Seq集合、Set集合、Map集合以及统计字符个数案例)

Scala第十八章节 章节目标 掌握Iterable集合相关内容.掌握Seq集合相关内容.掌握Set集合相关内容.掌握Map集合相关内容.掌握统计字符个数案例. 1. Iterable 1.1 概述 Iterable代表一个可以迭代的集合, 它继承了Traversable特质, 同时也是其他集合的父特质. 最重要的是, 它定…

题目:串变换(蓝桥OJ 4360)

问题描述&#xff1a; 解题思路&#xff1a; 题目说可以挑选任意个操作&#xff0c;因此我们枚举全部的子集。题目说以任意顺序执行&#xff0c;因此我们枚举每种子集的全排列。如果存在一种子集的一种排列可以使s变成t就返回yes并结束&#xff0c;反之&#xff0c;遍历完全部没…

Java 哈希表

一、哈希表的由来 我们的java程序通过访问数据库来获取数据&#xff0c;但是当我们对数据库所查询的信息进行大量分析后得知&#xff0c;我们要查询的数据满足二八定律&#xff0c;一般数据库的数据基本存储在磁盘当中。这使得每次查询数据将变得无比缓慢。为此我们可以将经常…

leetcode代码记录(第一个出现两次的字母

目录 1. 题目&#xff1a;2. 我的代码&#xff1a;小结&#xff1a; 1. 题目&#xff1a; 给你一个由小写英文字母组成的字符串 s &#xff0c;请你找出并返回第一个出现 两次 的字母。 注意&#xff1a; 如果 a 的 第二次 出现比 b 的 第二次 出现在字符串中的位置更靠前&…

【随笔】Git 高级篇 -- 分离 HEAD(十一)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

【unity小技巧】unity最完美的CharacterController 3d角色控制器,实现移动、跳跃、下蹲、奔跑、上下坡、物理碰撞效果,复制粘贴即用

最终效果 文章目录 最终效果前言为什么使用CharacterControllerSimpleMove和Move如何选择&#xff1f;1. SimpleMove2. Move 配置CharacterController参数控制相机移动跳跃方式一方式二 下蹲处理下坡抖动问题实现奔跑和不同移速控制完整代码补充&#xff0c;简单版本 实现物理碰…

很详细的单应矩阵分解R、t过程

很详细的单应矩阵分解R、t过程 附赠自动驾驶学习资料和量产经验&#xff1a;链接 已有多种方法将单应矩阵H分解为R、t&#xff0c;在《Deeper understanding of the homography decomposition for vision-based control》一文中介绍了三种方法&#xff1a; O. Faugeras and F.…

Docker实战教程 第1章 Linux快速入门

2-1 Linux介绍 为什么要学Linux 三个不得不学习 课程需要&#xff1a;Docker开发最好在Linux环境下。 开发需要&#xff1a;作为一个后端程序员&#xff0c;是必须要掌握Linux的&#xff0c;这是找工作的基础门槛。 运维需要&#xff1a;在服务器端&#xff0c;主流的大型服…

【操作系统】STM32-操作系统——持续更新

【操作系统】STM32-操作系统——持续更新 文章目录 前言一、ucosii二、freertos1.介绍2.移植 总结 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、ucosii UCOSII移植到STM32F103C8T6上之移植记录&#xff08;一&#xff09; UCOSII移植到ST…