【蓝桥备赛】蜗牛——动态规划

题目链接

蜗牛

个人思路

在每根竹竿都求出到达其底部和到达当前竹竿传送门入口的最小耗时,依次递推,求出最后一根竹竿底部的耗时。

参考代码

C++

由于此处需要格式化输出小数点后两位,所以采用printf感觉更方便一些。

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
typedef long long ll;
int n, arr[N],brr[N][2];
double f[N][2];int main()
{ios::sync_with_stdio(0), cin.tie(0);cin >> n;int i, j;for(i = 1; i <= n; ++i) cin >> arr[i];for(i = 1; i < n; ++i) cin >> brr[i][0] >> brr[i + 1][1];// 传输起点和传输终点f[1][0] = arr[1];f[1][1] = arr[1] + brr[1][0] / 0.7;for(i = 2; i <= n; ++i){// 由前一个根爬过来或者从当前竹竿传送出口爬过来f[i][0] = min(f[i - 1][0] + arr[i] - arr[i - 1], f[i - 1][1] + brr[i][1] / 1.3);// 由当前竹竿根爬过来或者从当前竹竿传送出口爬过来if(brr[i][1] > brr[i][0]) f[i][1] = min(f[i][0] + brr[i][0] / 0.7, f[i - 1][1] + (brr[i][1] - brr[i][0]) / 1.3);else f[i][1] = min(f[i][0] + brr[i][0] / 0.7, f[i - 1][1] + (brr[i][0] - brr[i][1]) / 0.7);}// for(i = 1; i <= n; ++i)// {//     printf("%lf, %lf\n", f[i][0], f[i][1]);// }printf("%.2lf", f[n][0]);
}

Java

import java.io.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner();int n = sc.nextInt();int[] arr = new int[n + 1];for (int i = 1; i <= n; i++) {arr[i] = sc.nextInt();}int[][] edge = new int[n + 1][2];for (int i = 1; i <= n - 1; ++i) {edge[i][0] = sc.nextInt();edge[i + 1][1] = sc.nextInt();}double[][] dp = new double[n + 1][2];// 初始化到第一根棍子时间dp[1][0] = arr[1];dp[1][1] = dp[1][0] + edge[1][0] / 0.7;for (int i = 2; i <= n; ++i) {dp[i][0] = Math.min(dp[i - 1][0] + arr[i] - arr[i - 1], dp[i - 1][1] + edge[i][1] / 1.3);if (edge[i][0] > edge[i][1]) {// 需要往上爬dp[i][1] = Math.min(dp[i - 1][0] + arr[i] - arr[i - 1] + edge[i][0] / 0.7, dp[i - 1][1] + (edge[i][0] - edge[i][1]) / 0.7);} else {dp[i][1] = Math.min(dp[i - 1][0] + arr[i] - arr[i - 1] + edge[i][0] / 0.7, dp[i - 1][1] + (edge[i][1] - edge[i][0]) / 1.3);}}System.out.printf("%.2f", dp[n][0]);}
}
class Scanner {static StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));public int nextInt() {try {st.nextToken();} catch (IOException e) {throw new RuntimeException(e);}return (int) st.nval;}
}

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

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

相关文章

关于在Ubuntu20.04环境下安装GRPC

关于在Ubuntu20.04环境下安装GRPC 1 cmake安装 要在Ubuntu 20.04上安装CMake 3.26.4,请按照以下步骤进行操作: 打开终端并更新apt软件包列表: sudo apt update安装必要的依赖项: sudo apt install -y wget gcc g++ build-essential下载CMake 3.26.4的源代码: wget https…

12 Redis之Lua脚本

11. Lua脚本 Lua 是一个由标准 C 语言开发的、开源的、可扩展的、轻量级的、弱类型的、解释型脚本语言 常用于Nginx/分布式锁/ 先下载并安装Lua

table展示子级踩坑

##elemenui中table通过row中是否有children进行判断是否展示子集&#xff0c;通过设置tree-prop的属性进行设置&#xff0c;子级的children的名字可以根据自己的子级名字进行替换&#xff0c;当然同样可以对数据处理成含有chilren的子级list。 问题&#xff1a; 1.如果是根据后…

c++中使用lambda表达式的作用和用法

lambda表达式&#xff1a; 这是C11引入的一种新特性&#xff0c;它可以让您在需要定义函数对象的地方&#xff0c;直接编写一个匿名的、可以捕获上下文变量的函数体&#xff0c;非常适合用作回调函数、临时计算或定义小型函数对象。 lambda表达式与普通函数类似&#xff0c;也有…

存内计算技术大幅提升机器学习算法的性能—挑战与解决方案探讨

一.存内计算技术大幅机器学习算法的性能 1.1背景 人工智能技术的迅速发展使人工智能芯片成为备受关注的关键组成部分。在人工智能的构建中&#xff0c;算力是三个支柱之一&#xff0c;包括数据、算法和算力。目前&#xff0c;人工智能芯片的发展主要集中在两个方向&#xff1…

云计算新宠:探索Apache Doris的云原生策略

文章目录 Apache Doris 特性极简架构高效自运维高并发场景支持MPP 执行引擎明细与聚合模型的统一便捷数据接入 Apache Doris 极速 1.0 时代极速列式内存布局向量化的计算框架Cache 亲和度虚函数调用SIMD 指令集 稳定多源 关于 Apache Doris 开源社区基于云原生向量数据库Milvus…

Flink SQL 使用UDF函数实现将多行值转为数组

1、背景 在使用Flink SQL同步数据的实际场景中&#xff0c;会碰到需要将多行数据转为数组的情况。 以MySQL同步ES为例&#xff0c;假如我们需要把每个学生的选修课程用数组格式存到ES。 namecourse苏苏语文苏苏数学苏苏英语橙橙政治橙橙物理橙橙计算机 需要得到以下结果&…

腾讯云服务器宝塔面板中Docker应用无法访问

今天在用宝塔面板的时候用Docker一键部署Jenkins 发现部署好了端口也都开放了&#xff0c;防火墙也都开放了&#xff0c;安全组也都开放了。但是就是访问不了。 解决办法&#xff0c;在服务器终端执行下面指令 echo net.ipv4.ip_forward 1 >> /etc/sysctl.conf &…

【LeetCode-300】最长递增子序列(动归)

目录 题目描述 解法1&#xff1a;动态规划 代码实现 题目链接 题目描述 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例…

vmware 中虚拟机Ubuntu磁盘不够,扩展磁盘,并分配

vmware 中虚拟机Ubuntu磁盘不够&#xff0c;扩展磁盘&#xff0c;并分配 Ubuntu虚拟机处于关机状态。虚拟机 -> 设置 ->硬盘 ->扩展 &#xff0c;可以直接多给点&#xff0c;这里只是做演示。 3.开启虚拟机&#xff0c;一般不会报错&#xff0c;我这里报错了&#…

Base 链官方点名 $AYB,继续飙涨指日可待?

近期 $AYB&#xff08;All Your Base Are Belong To Us&#xff09; 成为了 BASE 链上最火的 meme 项目&#xff0c;据悉 $AYB 在去年年底上线至今涨幅已经超过了 100 倍&#xff0c;其在被各大加密社区、KOL 追捧的同时&#xff0c;也被公认是继 Solana 上的 $BONK、Avalanche…

【Leetcode每日一题】二分查找 - 寻找旋转排序数组中的最小值(难度⭐⭐)(22)

1. 题目解析 Leetcode链接&#xff1a;153. 寻找旋转排序数组中的最小值 这个题目乍一看很长很复杂&#xff0c;又是旋转数组又是最小值的 但是仔细想想&#xff0c;结合题目给的示例&#xff0c;不难看出可以用二分的方法来解决 核心在于找到给定数组里面的最小值 2. 算法原…

一文了解游戏从立项到发行的流程

背景 玩家从app商店下载一个游戏,看到了只是一个游戏客户端。那么,游戏从立项到用户下载,会经过哪些职能部门呢? 游戏项目经过的部门可以因公司和项目的规模而有所不同,但通常会涉及以下部门: 游戏相关部门 项目经理/制作人:研发团队核心角色,负责协调和管理游戏项目…

亚信安慧AntDB开启超融合数据库新纪元

&#xff08;一&#xff09; 前言 据统计&#xff0c;在信息化时代的今天&#xff0c;人们一天所接触到的信息量&#xff0c;是古人一辈子所能接收到的信息量的总和。当今社会中除了信息量“多”以外&#xff0c;人们对信息处理的“效率”和“速度”的要求也越来越高。譬如&…

协议-http协议-基础概念01-发展历程-http组成-http是什么-相关的应用-相关的协议

发展历程-http组成-http是什么-相关的应用-相关的协议 参考来源&#xff1a; 极客时间-透视HTTP协议(作者&#xff1a;罗剑锋)&#xff1b; 01-HTTP的发展历程 1989 年&#xff0c;任职于欧洲核子研究中心&#xff08;CERN&#xff09;的蒂姆伯纳斯 - 李&#xff08;Tim Ber…

使用全局事件总线实现任意组件间的通讯

本文以vue2中爷孙组件通讯为例&#xff0c;需求是点击孙组件的按钮&#xff0c;实现关闭爷组件的弹窗。 全局事件总线是通过Vue实例的事件系统来实现组件之间的通讯&#xff0c;可以方便地在任何组件中进行事件的触发和监听。 以下是使用全局事件总线实现爷孙组件通讯的步骤&a…

Java 反射机制

​ 更多内容&#xff0c;前往IT-BLOG ​ 反射Reflection被视为动态语言的关键&#xff0c;反射机制允许程序在执行期间借助于Reflection API取得任何类的内部信息&#xff0c;并能直接操作任意对象的内部属性及方法。反射是一种功能强大且复杂的机制。使用它的主要人员是工具构…

登录页设计新选择:毛玻璃和新拟态风格,非2.5D和插画风

登录页给潜在用户传递了产品的品牌调性&#xff0c;是非常重要的一类页面&#xff0c;之前2.5D和插画风格的登录页流行一时&#xff0c;不过这阵风好像过去了&#xff0c;新的风格开始涌现了。 一、越来越流行的毛玻璃设计风格 毛玻璃风格是指将背景模糊处理&#xff0c;使得…

第二十篇-推荐-纯CPU(E5-2680)推理-llama.cpp-qwen1_5-72b-chat-q4_k_m.gguf

环境 系统&#xff1a;CentOS-7 CPU&#xff1a; Intel Xeon CPU E5-2680 v4 2.40GHz 14C28T 内存&#xff1a; 48G DDR3 依赖安装 make --version GNU Make 4.3gcc --version gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9)g --version g (GCC) 11.2.1 20220127 (Red Hat …

如何在 Linux 上使用 dmesg 命令

文章目录 1. Overview2.ring buffer怎样工作&#xff1f;3.dmesg命令4.移除sudo需求5. 强制彩色输出6.使用人性化的时间戳7.使用dmesg的人性化可读时间戳8.观察实时event9.检索最后10条消息10.搜索特定术语11.使用Log Levels12.使用Facility Categories13.Combining Facility a…