第十四届蓝桥杯第十题:蜗牛分享

2024-03-30 18:44

本文主要是介绍第十四届蓝桥杯第十题:蜗牛分享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题描述

输入格式

输出格式

输出共一行,一个浮点数表示答案(四舍五入保留两位小数)。

样例输入

3
1 10 11
1 1
2 1

样例输出

4.20

样例说明

蜗牛路线:(0,0)→(1,0)→(1,1)→(10,1)→(10,0)→(11,0)(0,0)→(1,0)→(1,1)→(10,1)→(10,0)→(11,0),花费时间为 1+10.7+0+11.3+1≈4.201+0.71​+0+1.31​+1≈4.20

根据题意可知该题涉及动态规划问题,所以我们结合代码进行讲解:

import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {//第一步接收输入Scanner sc = new Scanner(System.in);//n个竹竿int n = sc.nextInt();double []x = new double[n];//接收n个竹竿的坐标for(int i=0;i<n;i++){x[i] = sc.nextInt();}//接收从第1跟竹竿到第n-1跟竹竿开始的魔法阵距离double [][] a= new double[n-1][2];for(int i=0;i<n-1;i++){for (int j = 0;j<2;j++){a[i][j] = sc.nextInt();}}//假如直接就可以到达if(n<2){System.out.printf("%.2f",x[0]);}//正常多竹竿else {//开始使用动态规划//分两个状态,一个使用魔法,一个不使用魔法//dp[i][0]不使用,dp[i][1]使用//1.确定状态double dp[][] = new double[n][2];//2.确定初始值for(int i = 0;i<n;i++){Arrays.fill(dp[i],Double.MAX_VALUE);}//不使用魔法到达第一个竹竿dp[0][0] = x[0];//使用魔法到达第一个竹竿dp[0][1] = x[0];//不使用魔法到达第二个竹竿dp[1][0] = x[1];//使用魔法到达第二个竹竿dp[1][1] = x[0] + a[0][0]/0.7;//3.确定状态转移方程//从第三竹竿到达第n根竹竿的规划for(int i=2;i<n;i++){//不使用魔法//前一个不使用魔法dp[i][0] = Math.min(dp[i][0],dp[i-1][0] + x[i] - x[i-1] );//前一根使用魔法dp[i][0] = Math.min(dp[i][0],dp[i-1][1] + a[i-2][1]/1.3 + x[i] - x[i-1]);//使用魔法dp[i][1] = Math.min(dp[i][1],dp[i-1][0] + a[i-1][0]/0.7);double k = 0.0;if(a[i-2][1] > a[i-1][0]){k = 1.3;}else k = 0.7;//注意我们的要的是差值不是走一整段魔法阵到地面的距离而是两个相邻魔法阵的距离dp[i][1] = Math.min(dp[i][1],dp[i-1][1] + Math.abs(a[i-2][1] - a[i-1][0])/k);}double result = Math.min(dp[n-1][0],dp[n-1][1] + a[n-2][1]/1.3);System.out.printf("%.2f",result);}}
}

当状态分析好以及状态方程定义好就成功了大半!

这篇关于第十四届蓝桥杯第十题:蜗牛分享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/862283

相关文章

[职场] 护理专业简历怎么写 #经验分享#微信

护理专业简历怎么写   很多想成为一名护理方面的从业者,但是又不知道应该怎么制作一份简历,现在这里分享了一份护理方面的简历模板供大家参考。   蓝山山   年龄:24   号码:12345678910   地址:上海市 邮箱:jianli@jianli.com   教育背景   时间:2011-09到2015-06   学校:蓝山大学   专业:护理学   学历:本科

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

[职场] 公务员的利弊分析 #知识分享#经验分享#其他

公务员的利弊分析     公务员作为一种稳定的职业选择,一直备受人们的关注。然而,就像任何其他职业一样,公务员职位也有其利与弊。本文将对公务员的利弊进行分析,帮助读者更好地了解这一职业的特点。 利: 1. 稳定的职业:公务员职位通常具有较高的稳定性,一旦进入公务员队伍,往往可以享受到稳定的工作环境和薪资待遇。这对于那些追求稳定的人来说,是一个很大的优势。 2. 薪资福利优厚:公务员的薪资和

android一键分享功能部分实现

为什么叫做部分实现呢,其实是我只实现一部分的分享。如新浪微博,那还有没去实现的是微信分享。还有一部分奇怪的问题:我QQ分享跟QQ空间的分享功能,我都没配置key那些都是原本集成就有的key也可以实现分享,谁清楚的麻烦详解下。 实现分享功能我们可以去www.mob.com这个网站集成。免费的,而且还有短信验证功能。等这分享研究完后就研究下短信验证功能。 开始实现步骤(新浪分享,以下是本人自己实现

潜艇伟伟迷杂交版植物大战僵尸2024最新免费安卓+ios苹果+iPad分享

嗨,亲爱的游戏迷们!今天我要给你们种草一个超有趣的游戏——植物大战僵尸杂交版。这款游戏不仅继承了原有经典游戏的核心玩法,还加入了许多创新元素,让玩家能够体验到前所未有的乐趣。快来跟随我一起探索这个神奇的世界吧! 植物大战僵尸杂交版最新绿色版下载链接: https://pan.quark.cn/s/d60ed6e4791c 🔥 创新与经典的完美结合 植物大战僵尸杂交版在保持了原游戏经典玩

视频监控平台:支持交通部行业标准JT/T905协议(即:出租汽车服务管理信息系统)的源代码的函数和功能介绍及分享

目录 一、视频监控平台介绍 (一)概述 (二)视频接入能力介绍 (三)功能介绍 二、JT/T905协议介绍 (一)概述 (二)主要内容 1、设备要求 2、业务功能要求 3、技术功能要求 4、性能要求 5、接口要求 6、设备通信协议与数据格式 三、代码和解释 (一)代码和注释 (二)函数功能说明 1. 头文件保护 2. 包含必要的头文件 3. 引入命名空间std

iOS UITableView下拉刷新上拉加载更多EGOTableViewPullRefresh类库使用初级剑侠篇(欢迎提建议和分享遇到的问题)

这篇文章说下:MJRefresh和  EGOTableViewPullRefresh 的使用方法最下面有原理说明,若有不对或者建议请评论指出,先谢谢了: 首先是英文原文和类库下载地址:https://github.com/emreberge/EGOTableViewPullRefresh      然后创建好自己使用的tableview控件接着: 添加 Quartz

iOS UITableView扩展样式使用之初级剑客篇(欢迎提建议和分享遇到的问题)

1.tableHeaderView图片显示及如下效果: 向下拖动ScrollView时,ScrollView上方的图片会随着手指的拖动而放大并且变模糊。松开手指之后,图片随着ScrollView的回复原来位置而恢复原样。这种效果出现在Twitter App中。 完成像这种UITableView顶部有图片而且下拉时图片会有拉伸效果的可以使用:

iOS UITableViewCell重用机制理解之初级剑侠篇(欢迎提建议和分享遇到的问题)

@dequeueResableCellWithIdentifier方法:这个单词翻译一下就是“出列的可重用的cell”        iphone重用机制是苹果为了实现大量数据显示而采用的一种节省内存的机制,比如在UITableView和ScrollView 等地方。为什么要“可重用”?对于我们的项目来说,内存控制是必不可少的,如果一个tableview有几百个cell,这个内存消耗是很大的

iOS 系统控件UITableView使用之初级剑童篇(欢迎提建议和分享遇到的问题)

一.UITableView概述  1.UITableView继承自UIScrollView,可以表现为Plain和Grouped两种风格(具体区别的话大家可以自行试验,区别还是蛮大,不过因为iOS7扁平化的效果,感觉没6显示的区别大):         typedefNS_ENUM(NSInteger, UITableViewStyle) {         UITableViewS